(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 $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 $~lib/rt/__rtti_base i32 (i32.const 592)) (global $~lib/memory/__data_end i32 (i32.const 620)) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 17004)) (global $~lib/memory/__heap_base i32 (i32.const 17004)) (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\00h\00e\00l\00l\00o\00 \00t\00e\00s\00t\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 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 \00a\00l\00r\00e\00a\00d\00y\00 \00p\00i\00n\00n\00e\00d\00\00\00") (data (i32.const 524) "<\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 592) "\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) (elem $0 (i32.const 1)) (export "getString" (func $assembly/index/getString)) (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 $assembly/index/getString (result i32) i32.const 32 ) (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 $~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 480 i32.const 144 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 544 i32.const 144 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 272 local.get $0 call $~lib/rt/itcms/__visit i32.const 80 local.get $0 call $~lib/rt/itcms/__visit i32.const 480 local.get $0 call $~lib/rt/itcms/__visit i32.const 544 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 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 ) )