diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 81a2a3e5ef..dd23468444 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -3495,77 +3495,6 @@ i32.load return ) - (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) - local.get $this - i32.load offset=12 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) - local.get $this - i32.load offset=8 - ) - (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) - local.get $this - i32.load - ) - (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) - local.get $this - i32.load offset=16 - ) - (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) - (local $oldObj i32) - (local $newPtr i32) - (local $4 i32) - (local $5 i32) - local.get $oldPtr - i32.const 20 - i32.sub - local.set $oldObj - local.get $size - local.get $oldObj - call $~lib/rt/common/BLOCK#get:mmInfo - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $oldObj - local.get $size - call $~lib/rt/itcms/Object#set:rtSize - local.get $oldPtr - return - end - local.get $size - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtId - call $~lib/rt/itcms/__new - local.set $newPtr - local.get $newPtr - local.get $oldPtr - local.get $size - local.tee $4 - local.get $oldObj - call $~lib/rt/itcms/Object#get:rtSize - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - memory.copy - local.get $newPtr - return - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) - local.get $this - local.get $length_ - i32.store offset=12 - ) - (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) - local.get $this - i32.load offset=4 - ) (func $~lib/util/string/isSpace (param $c i32) (result i32) (local $1 i32) local.get $c @@ -3653,6 +3582,77 @@ i32.const 0 return ) + (func $~lib/array/Array<~lib/string/String>#get:length_ (param $this i32) (result i32) + local.get $this + i32.load offset=12 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:byteLength (param $this i32) (result i32) + local.get $this + i32.load offset=8 + ) + (func $~lib/arraybuffer/ArrayBufferView#get:buffer (param $this i32) (result i32) + local.get $this + i32.load + ) + (func $~lib/rt/itcms/Object#get:rtSize (param $this i32) (result i32) + local.get $this + i32.load offset=16 + ) + (func $~lib/rt/itcms/__renew (param $oldPtr i32) (param $size i32) (result i32) + (local $oldObj i32) + (local $newPtr i32) + (local $4 i32) + (local $5 i32) + local.get $oldPtr + i32.const 20 + i32.sub + local.set $oldObj + local.get $size + local.get $oldObj + call $~lib/rt/common/BLOCK#get:mmInfo + i32.const 3 + i32.const -1 + i32.xor + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $oldObj + local.get $size + call $~lib/rt/itcms/Object#set:rtSize + local.get $oldPtr + return + end + local.get $size + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtId + call $~lib/rt/itcms/__new + local.set $newPtr + local.get $newPtr + local.get $oldPtr + local.get $size + local.tee $4 + local.get $oldObj + call $~lib/rt/itcms/Object#get:rtSize + local.tee $5 + local.get $4 + local.get $5 + i32.lt_u + select + memory.copy + local.get $newPtr + return + ) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $this i32) (param $length_ i32) + local.get $this + local.get $length_ + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) + local.get $this + i32.load offset=4 + ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) i32.const 368 @@ -3887,7 +3887,7 @@ if i32.const 32 i32.const 80 - i32.const 124 + i32.const 131 i32.const 35 call $~lib/builtins/abort unreachable @@ -3941,7 +3941,7 @@ if i32.const 32 i32.const 80 - i32.const 136 + i32.const 143 i32.const 28 call $~lib/builtins/abort unreachable @@ -6579,18 +6579,16 @@ local.get $2 return ) - (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) - (local $oldCapacity i32) - (local $oldData i32) + (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) + (local $len i32) + (local $ptr i32) + (local $code i32) + (local $sign i32) (local $6 i32) - (local $7 i32) - (local $newCapacity i32) + (local $num i32) + (local $initial i32) (local $9 i32) (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $newData i32) - (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6599,724 +6597,468 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $array - local.set $14 + local.get $str + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $10 i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:byteLength - local.set $oldCapacity - local.get $newSize - local.get $oldCapacity - local.get $alignLog2 - i32.shr_u - i32.gt_u + local.get $10 + call $~lib/string/String#get:length + local.set $len + local.get $len + i32.eqz if - local.get $newSize - i32.const 1073741820 - local.get $alignLog2 - i32.shr_u - i32.gt_u - if - i32.const 5760 - i32.const 5712 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $array - local.set $14 + i32.const 0 + drop + i32.const 0 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:buffer - local.set $oldData - local.get $newSize - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $alignLog2 - i32.shl - local.set $newCapacity - local.get $canGrow + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + end + local.get $str + local.set $ptr + local.get $ptr + i32.load16_u + local.set $code + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace if - local.get $oldCapacity + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len i32.const 1 - i32.shl - local.tee $9 - i32.const 1073741820 - local.tee $10 - local.get $9 - local.get $10 - i32.lt_u - select - local.tee $11 - local.get $newCapacity - local.tee $12 - local.get $11 - local.get $12 - i32.gt_u - select - local.set $newCapacity + i32.sub + local.set $len + br $while-continue|0 end - local.get $oldData - local.get $newCapacity - call $~lib/rt/itcms/__renew - local.set $newData - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $newData - local.get $oldData - i32.ne + end + i32.const 1 + local.set $sign + local.get $code + i32.const 45 + i32.eq + if (result i32) + i32.const 1 + else + local.get $code + i32.const 43 + i32.eq + end + if + local.get $len + i32.const 1 + i32.sub + local.tee $len + i32.eqz if - local.get $array - local.get $newData - i32.store - local.get $array - local.get $newData - i32.store offset=4 - local.get $array - local.get $newData i32.const 0 - call $~lib/rt/itcms/__link + drop + i32.const 0 + 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 $array - local.get $newCapacity - i32.store offset=8 - 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>#__set (param $this i32) (param $index i32) (param $value 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 $index - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:length_ - i32.ge_u - if - local.get $index - i32.const 0 - i32.lt_s + local.get $code + i32.const 45 + i32.eq if - i32.const 368 - i32.const 5712 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable + i32.const -1 + local.set $sign end - local.get $this - local.get $index - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $index - i32.const 1 - i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ - end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - i32.const 1 - drop - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) - (local $oldLen i32) - (local $len 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 $this - 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 $oldLen - local.get $oldLen - i32.const 1 - i32.add - local.set $len - local.get $this - local.get $len - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - i32.const 1 - drop - local.get $this - 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:dataStart - local.get $oldLen - i32.const 2 - i32.shl - i32.add - local.get $value - i32.store - local.get $this - local.get $value - i32.const 1 - call $~lib/rt/itcms/__link - local.get $this - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $len - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $len - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - ) - (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $length i32) - (local $sepLen i32) - (local $7 i32) - (local $8 i32) - (local $result i32) - (local $resultStart i32) - (local $i i32) - (local $charStr i32) - (local $result|13 i32) - (local $result|14 i32) - (local $end i32) - (local $start i32) - (local $i|17 i32) - (local $len i32) - (local $out i32) - (local $len|20 i32) - (local $out|21 i32) - (local $22 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 - i32.const 0 - i32.const 40 - memory.fill - local.get $limit - i32.eqz - if - i32.const 0 + local.get $ptr i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return + local.tee $ptr + i32.load16_u + local.set $code end - local.get $separator - i32.const 0 - i32.eq + local.get $radix if - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.get $radix i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store offset=4 - local.get $3 - i32.const 0 - local.get $this - call $~lib/array/Array<~lib/string/String>#__set - local.get $3 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $length - local.get $separator - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/string/String#get:length - local.set $sepLen - local.get $limit - i32.const 0 - i32.lt_s - if - global.get $~lib/builtins/i32.MAX_VALUE - local.set $limit - end - local.get $sepLen - i32.eqz - if - local.get $length - i32.eqz + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $radix + i32.const 36 + i32.gt_s + end if i32.const 0 - i32.const 2 - i32.const 6 + drop i32.const 0 - call $~lib/rt/__newArray - local.set $22 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $22 + local.get $10 return end - local.get $length - local.tee $7 - local.get $limit - local.tee $8 - local.get $7 - local.get $8 - i32.lt_s - select - local.set $length - global.get $~lib/memory/__stack_pointer - local.get $length - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $result - i32.store offset=12 - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - local.set $resultStart - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $length - i32.lt_s + local.get $radix + i32.const 16 + i32.eq + if + local.get $len + i32.const 2 + i32.gt_s + if (result i32) + local.get $code + i32.const 48 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + i32.const 120 + i32.eq + else + i32.const 0 + end if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $charStr - i32.store offset=16 - local.get $charStr - local.get $this - local.get $i - i32.const 1 - i32.shl + local.get $ptr + i32.const 4 i32.add - i32.load16_u - i32.store16 - local.get $resultStart - local.get $i + local.set $ptr + local.get $len i32.const 2 - i32.shl - i32.add - local.get $charStr - i32.store - local.get $result - local.get $charStr - i32.const 1 - call $~lib/rt/itcms/__link - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.sub + local.set $len end end - local.get $result - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return else - local.get $length - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 + local.get $code + i32.const 48 + i32.eq + if (result i32) + local.get $len i32.const 2 - i32.const 6 + i32.gt_s + else i32.const 0 - call $~lib/rt/__newArray - local.tee $result|13 - i32.store offset=20 - local.get $result|13 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - call $~lib/array/Array<~lib/string/String>#get:dataStart - i32.const 2432 - i32.store - local.get $result|13 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return end - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 6 - i32.const 0 - call $~lib/rt/__newArray - local.tee $result|14 - i32.store offset=24 - i32.const 0 - local.set $end - i32.const 0 - local.set $start - i32.const 0 - local.set $i|17 - loop $while-continue|1 - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $separator - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor if - local.get $end - local.get $start - i32.sub - local.set $len - local.get $len - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=32 - local.get $out - local.get $this - local.get $start - i32.const 1 - i32.shl - i32.add - local.get $len - i32.const 1 - i32.shl - memory.copy - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop + block $break|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $ptr + i32.load16_u offset=2 + i32.const 32 + i32.or + local.set $6 + local.get $6 + i32.const 98 + i32.eq + br_if $case0|1 + local.get $6 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $6 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 2 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 8 + local.set $radix + br $break|1 + end + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + local.get $len + i32.const 2 + i32.sub + local.set $len + i32.const 16 + local.set $radix + br $break|1 end - local.get $i|17 + end + local.get $radix + i32.eqz + if + i32.const 10 + local.set $radix + end + end + i32.const 0 + local.set $num + local.get $len + i32.const 1 + i32.sub + local.set $initial + block $while-break|2 + loop $while-continue|2 + local.get $len + local.tee $9 i32.const 1 - i32.add - local.tee $i|17 - local.get $limit - i32.eq + i32.sub + local.set $len + local.get $9 if - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $ptr + i32.load16_u + local.set $code + local.get $code + i32.const 48 + i32.sub + i32.const 10 + i32.lt_u + if + local.get $code + i32.const 48 + i32.sub + local.set $code + else + local.get $code + i32.const 65 + i32.sub + i32.const 90 + i32.const 65 + i32.sub + i32.le_u + if + local.get $code + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $code + else + local.get $code + i32.const 97 + i32.sub + i32.const 122 + i32.const 97 + i32.sub + i32.le_u + if + local.get $code + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $code + end + end + end + local.get $code + local.get $radix + i32.ge_u + if + local.get $initial + local.get $len + i32.eq + if + i32.const 0 + drop + i32.const 0 + 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 + br $while-break|2 + end + local.get $num + local.get $radix + i32.mul + local.get $code i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return + local.set $num + local.get $ptr + i32.const 2 + i32.add + local.set $ptr + br $while-continue|2 end - local.get $end - local.get $sepLen - i32.add - local.set $start - br $while-continue|1 end end - local.get $start - i32.eqz - if - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $this - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - end - local.get $length - local.get $start + local.get $sign + local.get $num + i32.mul + local.set $10 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return + ) + (func $~lib/array/ensureCapacity (param $array i32) (param $newSize i32) (param $alignLog2 i32) (param $canGrow i32) + (local $oldCapacity i32) + (local $oldData i32) + (local $6 i32) + (local $7 i32) + (local $newCapacity i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $newData i32) + (local $14 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - local.set $len|20 - local.get $len|20 - i32.const 0 - i32.gt_s + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $array + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:byteLength + local.set $oldCapacity + local.get $newSize + local.get $oldCapacity + local.get $alignLog2 + i32.shr_u + i32.gt_u if + local.get $newSize + i32.const 1073741820 + local.get $alignLog2 + i32.shr_u + i32.gt_u + if + i32.const 5760 + i32.const 5712 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $array + local.set $14 global.get $~lib/memory/__stack_pointer - local.get $len|20 - i32.const 1 + local.get $14 + i32.store + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:buffer + local.set $oldData + local.get $newSize + local.tee $6 + i32.const 8 + local.tee $7 + local.get $6 + local.get $7 + i32.gt_u + select + local.get $alignLog2 i32.shl + local.set $newCapacity + local.get $canGrow + if + local.get $oldCapacity + i32.const 1 + i32.shl + local.tee $9 + i32.const 1073741820 + local.tee $10 + local.get $9 + local.get $10 + i32.lt_u + select + local.tee $11 + local.get $newCapacity + local.tee $12 + local.get $11 + local.get $12 + i32.gt_u + select + local.set $newCapacity + end + local.get $oldData + local.get $newCapacity + call $~lib/rt/itcms/__renew + local.set $newData i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out|21 - i32.store offset=36 - local.get $out|21 - local.get $this - local.get $start - i32.const 1 - i32.shl - i32.add - local.get $len|20 - i32.const 1 - i32.shl - memory.copy - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - local.get $out|21 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=8 - local.get $22 - i32.const 2432 - local.set $22 - global.get $~lib/memory/__stack_pointer - local.get $22 - i32.store offset=28 - local.get $22 - call $~lib/array/Array<~lib/string/String>#push + global.get $~lib/shared/runtime/Runtime.Incremental + i32.ne drop - end - local.get $result|14 - local.set $22 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $22 - return - ) - (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit 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 - i64.const 0 - i64.store - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end + local.get $newData + local.get $oldData + i32.ne + if + local.get $array + local.get $newData + i32.store + local.get $array + local.get $newData + i32.store offset=4 + local.get $array + local.get $newData i32.const 0 - local.set $separator + call $~lib/rt/itcms/__link end - global.get $~lib/builtins/i32.MAX_VALUE - local.set $limit + local.get $array + local.get $newCapacity + i32.store offset=8 end - local.get $this - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - local.get $separator - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $limit - call $~lib/string/String#split - local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) - (local $value i32) + (func $~lib/array/Array<~lib/string/String>#__set (param $this i32) (param $index i32) (param $value i32) (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 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.store local.get $index local.get $this local.set $3 @@ -7327,14 +7069,35 @@ call $~lib/array/Array<~lib/string/String>#get:length_ i32.ge_u if - i32.const 368 - i32.const 5712 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $index + i32.const 0 + i32.lt_s + if + i32.const 368 + i32.const 5712 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $this + local.get $index + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + local.get $index + i32.const 1 + i32.add + call $~lib/array/Array<~lib/string/String>#set:length_ end - global.get $~lib/memory/__stack_pointer local.get $this local.set $3 global.get $~lib/memory/__stack_pointer @@ -7346,43 +7109,23 @@ i32.const 2 i32.shl i32.add - i32.load - local.tee $value - i32.store offset=4 + local.get $value + i32.store i32.const 1 drop - i32.const 0 - i32.eqz - drop - local.get $value - i32.eqz - if - i32.const 5808 - i32.const 5712 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $this local.get $value - local.set $3 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - return ) - (func $~lib/util/string/strtol (param $str i32) (param $radix i32) (result i32) - (local $len i32) - (local $ptr i32) - (local $code i32) - (local $sign i32) - (local $6 i32) - (local $num i32) - (local $initial i32) - (local $9 i32) - (local $10 i32) + (func $~lib/array/Array<~lib/string/String>#push (param $this i32) (param $value i32) (result i32) + (local $oldLen i32) + (local $len i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7391,338 +7134,528 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $str - local.set $10 + local.get $this + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $4 i32.store - local.get $10 - call $~lib/string/String#get:length + local.get $4 + call $~lib/array/Array<~lib/string/String>#get:length_ + local.set $oldLen + local.get $oldLen + i32.const 1 + i32.add local.set $len + local.get $this + local.get $len + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + i32.const 1 + drop + local.get $this + 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:dataStart + local.get $oldLen + i32.const 2 + i32.shl + i32.add + local.get $value + i32.store + local.get $this + local.get $value + i32.const 1 + call $~lib/rt/itcms/__link + local.get $this + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store + local.get $4 local.get $len + call $~lib/array/Array<~lib/string/String>#set:length_ + local.get $len + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + ) + (func $~lib/string/String#split (param $this i32) (param $separator i32) (param $limit i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $length i32) + (local $sepLen i32) + (local $7 i32) + (local $8 i32) + (local $result i32) + (local $resultStart i32) + (local $i i32) + (local $charStr i32) + (local $result|13 i32) + (local $result|14 i32) + (local $end i32) + (local $start i32) + (local $i|17 i32) + (local $len i32) + (local $out i32) + (local $len|20 i32) + (local $out|21 i32) + (local $22 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 + i32.const 0 + i32.const 40 + memory.fill + local.get $limit i32.eqz if i32.const 0 - drop + i32.const 2 + i32.const 6 i32.const 0 - local.set $10 + call $~lib/rt/__newArray + local.set $22 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $22 return end - local.get $str - local.set $ptr - local.get $ptr - i32.load16_u - local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end - end - i32.const 1 - local.set $sign - local.get $code - i32.const 45 + local.get $separator + i32.const 0 i32.eq - if (result i32) - i32.const 1 - else - local.get $code - i32.const 43 - i32.eq - end if - local.get $len + global.get $~lib/memory/__stack_pointer i32.const 1 - i32.sub - local.tee $len - i32.eqz - if - i32.const 0 - drop - i32.const 0 - 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 $code - i32.const 45 - i32.eq - if - i32.const -1 - local.set $sign - end - local.get $ptr i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + i32.const 0 + local.get $this + call $~lib/array/Array<~lib/string/String>#__set + local.get $3 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add - local.tee $ptr - i32.load16_u - local.set $code + global.set $~lib/memory/__stack_pointer + local.get $22 + return end - local.get $radix + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/string/String#get:length + local.set $length + local.get $separator + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/string/String#get:length + local.set $sepLen + local.get $limit + i32.const 0 + i32.lt_s if - local.get $radix - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $radix - i32.const 36 - i32.gt_s - end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit + end + local.get $sepLen + i32.eqz + if + local.get $length + i32.eqz if i32.const 0 - drop + i32.const 2 + i32.const 6 i32.const 0 - local.set $10 + call $~lib/rt/__newArray + local.set $22 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 40 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $22 return end - local.get $radix - i32.const 16 - i32.eq - if - local.get $len - i32.const 2 - i32.gt_s - if (result i32) - local.get $code - i32.const 48 - i32.eq - else - i32.const 0 - end - if (result i32) - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - i32.const 120 - i32.eq - else - i32.const 0 - end + local.get $length + local.tee $7 + local.get $limit + local.tee $8 + local.get $7 + local.get $8 + i32.lt_s + select + local.set $length + global.get $~lib/memory/__stack_pointer + local.get $length + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result + i32.store offset=12 + local.get $result + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.set $resultStart + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $length + i32.lt_s if - local.get $ptr - i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $charStr + i32.store offset=16 + local.get $charStr + local.get $this + local.get $i + i32.const 1 + i32.shl i32.add - local.set $ptr - local.get $len + i32.load16_u + i32.store16 + local.get $resultStart + local.get $i i32.const 2 - i32.sub - local.set $len + i32.shl + i32.add + local.get $charStr + i32.store + local.get $result + local.get $charStr + i32.const 1 + call $~lib/rt/itcms/__link + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end + local.get $result + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return else - local.get $code - i32.const 48 - i32.eq - if (result i32) - local.get $len + local.get $length + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 i32.const 2 - i32.gt_s - else + i32.const 6 i32.const 0 + call $~lib/rt/__newArray + local.tee $result|13 + i32.store offset=20 + local.get $result|13 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + call $~lib/array/Array<~lib/string/String>#get:dataStart + i32.const 2432 + i32.store + local.get $result|13 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return end + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 2 + i32.const 6 + i32.const 0 + call $~lib/rt/__newArray + local.tee $result|14 + i32.store offset=24 + i32.const 0 + local.set $end + i32.const 0 + local.set $start + i32.const 0 + local.set $i|17 + loop $while-continue|1 + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $separator + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + local.get $start + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor if - block $break|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $ptr - i32.load16_u offset=2 - i32.const 32 - i32.or - local.set $6 - local.get $6 - i32.const 98 - i32.eq - br_if $case0|1 - local.get $6 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $6 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 2 - local.set $radix - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - local.get $len - i32.const 2 - i32.sub - local.set $len - i32.const 8 - local.set $radix - br $break|1 - end - local.get $ptr - i32.const 4 - i32.add - local.set $ptr + local.get $end + local.get $start + i32.sub + local.set $len + local.get $len + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer local.get $len + i32.const 1 + i32.shl i32.const 2 - i32.sub - local.set $len - i32.const 16 - local.set $radix - br $break|1 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=32 + local.get $out + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $out + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + i32.const 2432 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop end - end - local.get $radix - i32.eqz - if - i32.const 10 - local.set $radix + local.get $i|17 + i32.const 1 + i32.add + local.tee $i|17 + local.get $limit + i32.eq + if + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $end + local.get $sepLen + i32.add + local.set $start + br $while-continue|1 end end - i32.const 0 - local.set $num - local.get $len - i32.const 1 + local.get $start + i32.eqz + if + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $this + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + end + local.get $length + local.get $start i32.sub - local.set $initial - block $while-break|2 - loop $while-continue|2 - local.get $len - local.tee $9 - i32.const 1 - i32.sub - local.set $len - local.get $9 - if - local.get $ptr - i32.load16_u - local.set $code - local.get $code - i32.const 48 - i32.sub - i32.const 10 - i32.lt_u - if - local.get $code - i32.const 48 - i32.sub - local.set $code - else - local.get $code - i32.const 65 - i32.sub - i32.const 90 - i32.const 65 - i32.sub - i32.le_u - if - local.get $code - i32.const 65 - i32.const 10 - i32.sub - i32.sub - local.set $code - else - local.get $code - i32.const 97 - i32.sub - i32.const 122 - i32.const 97 - i32.sub - i32.le_u - if - local.get $code - i32.const 97 - i32.const 10 - i32.sub - i32.sub - local.set $code - end - end - end - local.get $code - local.get $radix - i32.ge_u - if - local.get $initial - local.get $len - i32.eq - if - i32.const 0 - drop - i32.const 0 - 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 - br $while-break|2 + local.set $len|20 + local.get $len|20 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $len|20 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out|21 + i32.store offset=36 + local.get $out|21 + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len|20 + i32.const 1 + i32.shl + memory.copy + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + local.get $out|21 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=8 + local.get $22 + i32.const 2432 + local.set $22 + global.get $~lib/memory/__stack_pointer + local.get $22 + i32.store offset=28 + local.get $22 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $result|14 + local.set $22 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $22 + return + ) + (func $~lib/string/String#split@varargs (param $this i32) (param $separator i32) (param $limit 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 + i64.const 0 + i64.store + block $2of2 + block $1of2 + block $0of2 + block $outOfRange + global.get $~argumentsLength + br_table $0of2 $1of2 $2of2 $outOfRange end - local.get $num - local.get $radix - i32.mul - local.get $code - i32.add - local.set $num - local.get $ptr - i32.const 2 - i32.add - local.set $ptr - br $while-continue|2 + unreachable end + i32.const 0 + local.set $separator end + global.get $~lib/builtins/i32.MAX_VALUE + local.set $limit end - local.get $sign - local.get $num - i32.mul - local.set $10 + local.get $this + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $3 + i32.store + local.get $3 + local.get $separator + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $limit + call $~lib/string/String#split + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - return + local.get $3 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $this i32) (result i32) (local $1 i32) @@ -7749,6 +7682,73 @@ local.get $1 return ) + (func $~lib/array/Array<~lib/string/String>#__get (param $this i32) (param $index i32) (result i32) + (local $value 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 + local.get $index + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:length_ + i32.ge_u + if + i32.const 368 + i32.const 5712 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $this + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store + local.get $3 + call $~lib/array/Array<~lib/string/String>#get:dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $value + i32.store offset=4 + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $value + i32.eqz + if + i32.const 5808 + i32.const 5712 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $value + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return + ) (func $~lib/string/String#substr (param $this i32) (param $start i32) (param $length i32) (result i32) (local $intStart i32) (local $end i32) @@ -7990,39 +7990,42 @@ (local $timeString i32) (local $i i32) (local $c i32) - (local $offsetParts i32) + (local $posColon i32) (local $value i32) (local $radix i32) (local $offsetHours i32) (local $value|15 i32) (local $radix|16 i32) (local $offsetMinutes i32) + (local $value|18 i32) + (local $radix|19 i32) + (local $offsetHours|20 i32) (local $timeParts i32) (local $len i32) - (local $value|20 i32) - (local $radix|21 i32) - (local $value|22 i32) - (local $radix|23 i32) + (local $value|23 i32) + (local $radix|24 i32) + (local $value|25 i32) + (local $radix|26 i32) (local $secAndFrac i32) (local $posDot i32) - (local $value|26 i32) - (local $radix|27 i32) - (local $value|28 i32) - (local $radix|29 i32) - (local $value|30 i32) - (local $radix|31 i32) - (local $parts i32) + (local $value|29 i32) + (local $radix|30 i32) + (local $value|31 i32) + (local $radix|32 i32) (local $value|33 i32) (local $radix|34 i32) + (local $parts i32) + (local $value|36 i32) + (local $radix|37 i32) (local $year i32) (local $month i32) (local $day i32) - (local $len|38 i32) - (local $value|39 i32) - (local $radix|40 i32) - (local $value|41 i32) - (local $radix|42 i32) - (local $43 i32) + (local $len|41 i32) + (local $value|42 i32) + (local $radix|43 i32) + (local $value|44 i32) + (local $radix|45 i32) + (local $46 i32) global.get $~lib/memory/__stack_pointer i32.const 76 i32.sub @@ -8033,11 +8036,11 @@ i32.const 76 memory.fill local.get $dateTimeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 call $~lib/string/String#get:length i32.eqz if @@ -8063,17 +8066,17 @@ local.tee $dateString i32.store offset=4 local.get $dateTimeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2464 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posT @@ -8083,11 +8086,11 @@ if global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 local.get $posT call $~lib/string/String#substring @@ -8095,11 +8098,11 @@ i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $dateTimeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 local.get $posT i32.const 1 i32.add @@ -8110,11 +8113,11 @@ local.tee $timeString i32.store offset=12 local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 call $~lib/string/String#get:length i32.const 1 i32.sub @@ -8126,11 +8129,11 @@ i32.ge_s if local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 local.get $i call $~lib/string/String#charCodeAt local.set $c @@ -8140,11 +8143,11 @@ if global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 local.get $i call $~lib/string/String#substring @@ -8165,11 +8168,11 @@ if local.get $i local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 call $~lib/string/String#get:length i32.const 1 i32.sub @@ -8182,108 +8185,129 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $43 - global.get $~lib/memory/__stack_pointer - local.get $43 - i32.store offset=16 - local.get $43 - local.get $i - i32.const 1 - i32.add - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String#substring@varargs - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2496 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 + local.get $i i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String#split@varargs - local.tee $offsetParts - i32.store offset=20 - block $~lib/builtins/i32.parse|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $offsetParts - local.set $43 - global.get $~lib/memory/__stack_pointer - local.get $43 - i32.store - local.get $43 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $value - i32.store offset=24 - i32.const 0 - local.set $radix - local.get $value - local.set $43 - global.get $~lib/memory/__stack_pointer - local.get $43 - i32.store - local.get $43 - local.get $radix - call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.0 - end - local.set $offsetHours - local.get $offsetParts - local.set $43 - global.get $~lib/memory/__stack_pointer - local.get $43 - i32.store - local.get $43 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 2 - i32.ge_s - if (result i32) + i32.add + call $~lib/string/String#indexOf + local.set $posColon + local.get $posColon + i32.const -1 + i32.xor + if + block $~lib/builtins/i32.parse|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + local.get $posColon + call $~lib/string/String#substring + local.tee $value + i32.store offset=16 + i32.const 0 + local.set $radix + local.get $value + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.0 + end + local.set $offsetHours block $~lib/builtins/i32.parse|inlined.1 (result i32) global.get $~lib/memory/__stack_pointer - local.get $offsetParts - local.set $43 + local.get $timeString + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 + local.get $posColon i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs local.tee $value|15 - i32.store offset=28 + i32.store offset=20 i32.const 0 local.set $radix|16 local.get $value|15 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 local.get $radix|16 call $~lib/util/string/strtol br $~lib/builtins/i32.parse|inlined.1 end + local.set $offsetMinutes + local.get $offsetHours + i32.const 60 + i32.mul + local.get $offsetMinutes + i32.add + i32.const 60000 + i32.mul + local.set $offsetMs else - i32.const 0 + block $~lib/builtins/i32.parse|inlined.2 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $timeString + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $i + i32.const 1 + i32.add + i32.const 1 + global.set $~argumentsLength + i32.const 0 + call $~lib/string/String#substring@varargs + local.tee $value|18 + i32.store offset=24 + i32.const 0 + local.set $radix|19 + local.get $value|18 + local.set $46 + global.get $~lib/memory/__stack_pointer + local.get $46 + i32.store + local.get $46 + local.get $radix|19 + call $~lib/util/string/strtol + br $~lib/builtins/i32.parse|inlined.2 + end + local.set $offsetHours|20 + local.get $offsetHours|20 + i32.const 3600000 + i32.mul + local.set $offsetMs end - local.set $offsetMinutes - local.get $offsetHours - i32.const 60 - i32.mul - local.get $offsetMinutes - i32.add - i32.const 60000 - i32.mul - local.set $offsetMs local.get $c i32.const 45 i32.eq @@ -8295,11 +8319,11 @@ end global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 local.get $i call $~lib/string/String#substring @@ -8318,29 +8342,29 @@ end global.get $~lib/memory/__stack_pointer local.get $timeString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2496 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $timeParts - i32.store offset=32 + i32.store offset=28 local.get $timeParts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 call $~lib/array/Array<~lib/string/String>#get:length local.set $len local.get $len @@ -8349,59 +8373,59 @@ if i32.const 32 i32.const 80 - i32.const 89 + i32.const 96 i32.const 21 call $~lib/builtins/abort unreachable end - block $~lib/builtins/i32.parse|inlined.2 (result i32) + block $~lib/builtins/i32.parse|inlined.3 (result i32) global.get $~lib/memory/__stack_pointer local.get $timeParts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $value|20 - i32.store offset=36 + local.tee $value|23 + i32.store offset=32 i32.const 0 - local.set $radix|21 - local.get $value|20 - local.set $43 + local.set $radix|24 + local.get $value|23 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|21 + local.get $46 + local.get $radix|24 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.2 + br $~lib/builtins/i32.parse|inlined.3 end local.set $hour - block $~lib/builtins/i32.parse|inlined.3 (result i32) + block $~lib/builtins/i32.parse|inlined.4 (result i32) global.get $~lib/memory/__stack_pointer local.get $timeParts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $value|22 - i32.store offset=40 + local.tee $value|25 + i32.store offset=36 i32.const 0 - local.set $radix|23 - local.get $value|22 - local.set $43 + local.set $radix|26 + local.get $value|25 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|23 + local.get $46 + local.get $radix|26 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.3 + br $~lib/builtins/i32.parse|inlined.4 end local.set $min local.get $len @@ -8410,27 +8434,27 @@ if global.get $~lib/memory/__stack_pointer local.get $timeParts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $secAndFrac - i32.store offset=44 + i32.store offset=40 local.get $secAndFrac - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2528 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 i32.const 0 call $~lib/string/String#indexOf local.set $posDot @@ -8438,90 +8462,90 @@ i32.const -1 i32.xor if - block $~lib/builtins/i32.parse|inlined.4 (result i32) + block $~lib/builtins/i32.parse|inlined.5 (result i32) global.get $~lib/memory/__stack_pointer local.get $secAndFrac - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 local.get $posDot call $~lib/string/String#substring - local.tee $value|26 - i32.store offset=48 + local.tee $value|29 + i32.store offset=44 i32.const 0 - local.set $radix|27 - local.get $value|26 - local.set $43 + local.set $radix|30 + local.get $value|29 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|27 + local.get $46 + local.get $radix|30 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.4 + br $~lib/builtins/i32.parse|inlined.5 end local.set $sec - block $~lib/builtins/i32.parse|inlined.5 (result i32) + block $~lib/builtins/i32.parse|inlined.6 (result i32) global.get $~lib/memory/__stack_pointer local.get $secAndFrac - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 - i32.store offset=16 - local.get $43 + local.get $46 + i32.store offset=48 + local.get $46 local.get $posDot i32.const 1 i32.add i32.const 3 call $~lib/string/String#substr - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 3 i32.const 848 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 call $~lib/string/String#padEnd - local.tee $value|28 + local.tee $value|31 i32.store offset=52 i32.const 0 - local.set $radix|29 - local.get $value|28 - local.set $43 + local.set $radix|32 + local.get $value|31 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|29 + local.get $46 + local.get $radix|32 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.5 + br $~lib/builtins/i32.parse|inlined.6 end local.set $ms else - block $~lib/builtins/i32.parse|inlined.6 (result i32) + block $~lib/builtins/i32.parse|inlined.7 (result i32) global.get $~lib/memory/__stack_pointer local.get $secAndFrac - local.tee $value|30 + local.tee $value|33 i32.store offset=56 i32.const 0 - local.set $radix|31 - local.get $value|30 - local.set $43 + local.set $radix|34 + local.get $value|33 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|31 + local.get $46 + local.get $radix|34 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.6 + br $~lib/builtins/i32.parse|inlined.7 end local.set $sec end @@ -8529,46 +8553,46 @@ end global.get $~lib/memory/__stack_pointer local.get $dateString - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 592 - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store offset=8 - local.get $43 + local.get $46 i32.const 1 global.set $~argumentsLength i32.const 0 call $~lib/string/String#split@varargs local.tee $parts i32.store offset=60 - block $~lib/builtins/i32.parse|inlined.7 (result i32) + block $~lib/builtins/i32.parse|inlined.8 (result i32) global.get $~lib/memory/__stack_pointer local.get $parts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $value|33 + local.tee $value|36 i32.store offset=64 i32.const 0 - local.set $radix|34 - local.get $value|33 - local.set $43 + local.set $radix|37 + local.get $value|36 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|34 + local.get $46 + local.get $radix|37 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.7 + br $~lib/builtins/i32.parse|inlined.8 end local.set $year i32.const 1 @@ -8576,69 +8600,69 @@ i32.const 1 local.set $day local.get $parts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 call $~lib/array/Array<~lib/string/String>#get:length - local.set $len|38 - local.get $len|38 + local.set $len|41 + local.get $len|41 i32.const 2 i32.ge_s if - block $~lib/builtins/i32.parse|inlined.8 (result i32) + block $~lib/builtins/i32.parse|inlined.9 (result i32) global.get $~lib/memory/__stack_pointer local.get $parts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $value|39 + local.tee $value|42 i32.store offset=68 i32.const 0 - local.set $radix|40 - local.get $value|39 - local.set $43 + local.set $radix|43 + local.get $value|42 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|40 + local.get $46 + local.get $radix|43 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.8 + br $~lib/builtins/i32.parse|inlined.9 end local.set $month - local.get $len|38 + local.get $len|41 i32.const 3 i32.ge_s if - block $~lib/builtins/i32.parse|inlined.9 (result i32) + block $~lib/builtins/i32.parse|inlined.10 (result i32) global.get $~lib/memory/__stack_pointer local.get $parts - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 + local.get $46 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get - local.tee $value|41 + local.tee $value|44 i32.store offset=72 i32.const 0 - local.set $radix|42 - local.get $value|41 - local.set $43 + local.set $radix|45 + local.get $value|44 + local.set $46 global.get $~lib/memory/__stack_pointer - local.get $43 + local.get $46 i32.store - local.get $43 - local.get $radix|42 + local.get $46 + local.get $radix|45 call $~lib/util/string/strtol - br $~lib/builtins/i32.parse|inlined.9 + br $~lib/builtins/i32.parse|inlined.10 end local.set $day end @@ -8656,12 +8680,12 @@ i64.extend_i32_s i64.sub call $~lib/date/Date#constructor - local.set $43 + local.set $46 global.get $~lib/memory/__stack_pointer i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $43 + local.get $46 return ) (func $start:std/date diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 426d387816..31d3fa0a0d 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -2590,7 +2590,7 @@ if i32.const 1056 i32.const 1104 - i32.const 124 + i32.const 131 i32.const 35 call $~lib/builtins/abort unreachable @@ -2650,7 +2650,7 @@ if i32.const 1056 i32.const 1104 - i32.const 136 + i32.const 143 i32.const 28 call $~lib/builtins/abort unreachable @@ -5183,10 +5183,14 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) + (func $~lib/util/string/strtol (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) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5203,548 +5207,292 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $0 - i32.store local.get $1 local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 6784 - i32.const 6736 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.store + block $folding-inner0 local.get $0 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$362 - i32.const 1073741820 - local.get $2 - i32.const 1 - i32.shl - local.tee $2 - local.get $2 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $1 - local.get $1 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $3 - local.get $0 - i32.load - local.tee $2 - i32.const 20 - i32.sub - local.tee $4 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $1 + i32.eqz + br_if $folding-inner0 + local.get $0 + local.tee $2 + i32.load16_u + local.set $0 + loop $while-continue|0 + block $__inlined_func$~lib/util/string/isSpace$164 (result i32) + local.get $0 + i32.const 128 + i32.or + i32.const 160 + i32.eq + local.get $0 + i32.const 9 + i32.sub + i32.const 4 + i32.le_u + i32.or + local.get $0 + i32.const 5760 + i32.lt_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + i32.const 1 + local.get $0 + i32.const -8192 + i32.add + i32.const 10 + i32.le_u + br_if $__inlined_func$~lib/util/string/isSpace$164 + drop + block $break|0 + block $case0|0 + local.get $0 + i32.const 5760 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8232 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8233 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8239 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 8287 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 12288 + i32.eq + br_if $case0|0 + local.get $0 + i32.const 65279 + i32.eq + br_if $case0|0 + br $break|0 + end + i32.const 1 + br $__inlined_func$~lib/util/string/isSpace$164 + end + i32.const 0 + end if - local.get $4 - local.get $3 - i32.store offset=16 local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + local.set $0 + local.get $1 + i32.const 1 + i32.sub local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$362 + br $while-continue|0 end - local.get $3 - local.get $4 - i32.load offset=12 - call $~lib/rt/itcms/__new + end + i32.const 1 + local.set $4 + local.get $0 + i32.const 45 + i32.eq + local.tee $6 + local.get $0 + i32.const 43 + i32.eq + i32.or + if (result i32) + local.get $1 + i32.const 1 + i32.sub local.tee $1 - local.get $2 - local.get $3 - local.get $4 - i32.load offset=16 - local.tee $4 - local.get $3 - local.get $4 - i32.lt_u + i32.eqz + br_if $folding-inner0 + i32.const -1 + i32.const 1 + local.get $6 select - memory.copy + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.tee $2 + i32.load16_u + else + local.get $0 end + i32.const 48 + i32.eq local.get $1 - local.get $2 - i32.ne + i32.const 2 + i32.gt_s + i32.and if - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $0 - local.get $3 - i32.store offset=8 - 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>#push (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 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - 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 - i32.store - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.add - local.tee $3 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - 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 - global.get $~lib/memory/__stack_pointer - local.get $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 $~lib/string/String#split (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 40 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 40 - memory.fill - local.get $2 - i32.eqz - br_if $folding-inner1 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=4 - i32.store offset=4 - 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 8468 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - local.get $2 - i32.store + block $break|1 + block $case2|1 + block $case1|1 local.get $2 - i32.load offset=12 - i32.eqz + i32.load16_u offset=2 + i32.const 32 + i32.or + local.tee $0 + i32.const 98 + i32.ne if - local.get $2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 1 - i32.store offset=12 + local.get $0 + i32.const 111 + i32.eq + br_if $case1|1 + local.get $0 + i32.const 120 + i32.eq + br_if $case2|1 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.load offset=4 - local.get $0 - i32.store local.get $2 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner2 + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 2 + local.set $3 + br $break|1 end - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $7 - local.get $6 - local.get $1 - i32.store offset=8 - i32.const 2147483647 local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select + i32.const 4 + i32.add local.set $2 local.get $1 - i32.const 20 + i32.const 2 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 + local.set $1 + i32.const 8 + local.set $3 + br $break|1 + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 2 + i32.sub + local.set $1 + i32.const 16 + local.set $3 + end + end + local.get $3 + i32.const 10 + local.get $3 + select + local.set $6 + local.get $1 + i32.const 1 + i32.sub + local.set $7 + loop $while-continue|2 + local.get $1 + local.tee $0 + i32.const 1 + i32.sub + local.set $1 + local.get $0 + if + block $while-break|2 + local.get $2 + i32.load16_u + local.tee $3 + i32.const 48 + i32.sub + local.tee $0 + i32.const 10 + i32.ge_u if - local.get $7 - i32.eqz - if - local.get $6 - i32.const 1 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - i32.const 3456 - i32.store - br $folding-inner2 + local.get $3 + i32.const 65 + i32.sub + i32.const 25 + i32.le_u + if (result i32) + local.get $3 + i32.const 55 + i32.sub + else + local.get $3 + i32.const 87 + i32.sub + local.get $3 + local.get $3 + i32.const 97 + i32.sub + i32.const 25 + i32.le_u + select end - else - local.get $7 - i32.eqz - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $2 - local.get $2 + local.set $0 + end + local.get $0 + local.get $6 + i32.ge_u + if + local.get $1 local.get $7 - i32.gt_s - select - local.tee $3 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - i32.load offset=4 - local.set $4 - i32.const 0 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=16 - local.get $5 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - br $folding-inner2 - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/rt/__newArray - local.tee $8 - i32.store offset=24 - loop $while-continue|1 - global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $0 - i32.store offset=8 - local.get $6 - local.get $1 - i32.store offset=28 - local.get $0 - local.get $1 - local.get $3 - call $~lib/string/String#indexOf - local.tee $9 - i32.const -1 - i32.xor - if - local.get $9 - local.get $3 - i32.sub - local.tee $6 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - local.tee $10 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=32 - local.get $6 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $10 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=28 - local.get $8 - local.get $6 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 - i32.store offset=8 - local.get $3 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push - end - local.get $4 - i32.const 1 - i32.add - local.tee $4 - local.get $2 - i32.eq - br_if $folding-inner3 - local.get $5 - local.get $9 - i32.add - local.set $3 - br $while-continue|1 - end - end - local.get $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $8 - i32.store offset=8 - local.get $1 - local.get $0 - i32.store offset=28 - local.get $8 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner3 - end - local.get $7 - local.get $3 - i32.sub - local.tee $1 - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=36 - local.get $2 - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.get $1 - memory.copy - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=28 - local.get $8 - local.get $2 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $8 - i32.store offset=8 - local.get $0 - i32.const 3456 - i32.store offset=28 - local.get $8 - i32.const 3456 - call $~lib/array/Array<~lib/string/String>#push + i32.eq + br_if $folding-inner0 + br $while-break|2 end - global.get $~lib/memory/__stack_pointer - i32.const 40 + local.get $5 + local.get $6 + i32.mul + local.get $0 i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.set $5 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|2 end - i32.const 41264 - i32.const 41312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable end - i32.const 0 - call $~lib/rt/__newArray - local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $4 + local.get $5 + i32.mul return end global.get $~lib/memory/__stack_pointer - i32.const 40 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + i32.const 0 ) - (func $~lib/string/String#split@varargs (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/ensureCapacity (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.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5759,45 +5507,124 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.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 - local.tee $3 + local.tee $2 + i32.const 0 + i32.store + local.get $2 local.get $0 i32.store - local.get $3 local.get $1 - i32.store offset=4 local.get $0 - local.get $1 - local.get $2 - call $~lib/string/String#split - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.load offset=8 + local.tee $2 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 6784 + i32.const 6736 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$363 + i32.const 1073741820 + local.get $2 + i32.const 1 + i32.shl + local.tee $2 + local.get $2 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 + local.get $1 + local.get $1 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $3 + local.get $0 + i32.load + local.tee $2 + 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 $3 + i32.store offset=16 + local.get $2 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$363 + end + local.get $3 + local.get $4 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 + local.get $2 + local.get $3 + local.get $4 + i32.load offset=16 + local.tee $4 + local.get $3 + local.get $4 + i32.lt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + local.get $0 + local.get $3 + i32.store offset=8 + 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<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -5813,356 +5640,463 @@ end global.get $~lib/memory/__stack_pointer local.tee $2 - i64.const 0 - i64.store + i32.const 0 + i32.store local.get $2 local.get $0 i32.store - local.get $1 + local.get $0 local.get $0 i32.load offset=12 - i32.ge_u - if - i32.const 1392 - i32.const 6736 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.tee $2 + i32.const 1 + i32.add + local.tee $3 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add - i32.load - local.tee $0 - i32.store offset=4 + local.get $1 + i32.store local.get $0 - i32.eqz - if - i32.const 6832 - i32.const 6736 - i32.const 118 - i32.const 40 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 8 + local.get $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 - local.get $0 ) - (func $~lib/util/string/strtol (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) + (func $~lib/string/String#split (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.const 40 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8468 - i32.lt_s - if - i32.const 41264 - i32.const 41312 - 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.store - block $folding-inner0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.tee $2 - i32.load16_u - local.set $0 - loop $while-continue|0 - block $__inlined_func$~lib/util/string/isSpace$182 (result i32) - local.get $0 - i32.const 128 - i32.or - i32.const 160 - i32.eq - local.get $0 - i32.const 9 - i32.sub - i32.const 4 - i32.le_u - i32.or - local.get $0 - i32.const 5760 - i32.lt_u - br_if $__inlined_func$~lib/util/string/isSpace$182 - drop - i32.const 1 - local.get $0 - i32.const -8192 - i32.add - i32.const 10 - i32.le_u - br_if $__inlined_func$~lib/util/string/isSpace$182 - drop - block $break|0 - block $case0|0 - local.get $0 - i32.const 5760 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8232 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8233 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8239 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 8287 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 12288 - i32.eq - br_if $case0|0 - local.get $0 - i32.const 65279 - i32.eq - br_if $case0|0 - br $break|0 - end - i32.const 1 - br $__inlined_func$~lib/util/string/isSpace$182 - end - i32.const 0 - end - if - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const 1 - local.set $4 - local.get $0 - i32.const 45 - i32.eq - local.tee $6 - local.get $0 - i32.const 43 - i32.eq - i32.or - if (result i32) - local.get $1 - i32.const 1 - i32.sub - local.tee $1 - i32.eqz - br_if $folding-inner0 - i32.const -1 - i32.const 1 - local.get $6 - select - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.tee $2 - i32.load16_u - else - local.get $0 - end - i32.const 48 - i32.eq - local.get $1 - i32.const 2 - i32.gt_s - i32.and - if - block $break|1 - block $case2|1 - block $case1|1 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 40 + memory.fill + local.get $2 + i32.eqz + br_if $folding-inner1 + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/rt/__newArray + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer local.get $2 - i32.load16_u offset=2 - i32.const 32 - i32.or - local.tee $0 - i32.const 98 - i32.ne + i32.load offset=4 + i32.store offset=4 + 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 8468 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + local.get $2 + i32.store + local.get $2 + i32.load offset=12 + i32.eqz if - local.get $0 - i32.const 111 - i32.eq - br_if $case1|1 - local.get $0 - i32.const 120 - i32.eq - br_if $case2|1 - br $break|1 + local.get $2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.const 1 + i32.store offset=12 end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + i32.load offset=4 + local.get $0 + i32.store local.get $2 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 2 - local.set $3 - br $break|1 + global.set $~lib/memory/__stack_pointer + br $folding-inner2 end + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $7 + local.get $6 + local.get $1 + i32.store offset=8 + i32.const 2147483647 local.get $2 - i32.const 4 - i32.add + local.get $2 + i32.const 0 + i32.lt_s + select local.set $2 local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 8 - local.set $3 - br $break|1 - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.sub - local.set $1 - i32.const 16 - local.set $3 - end - end - local.get $3 - i32.const 10 - local.get $3 - select - local.set $6 - local.get $1 - i32.const 1 - i32.sub - local.set $7 - loop $while-continue|2 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $0 - if - block $while-break|2 - local.get $2 - i32.load16_u - local.tee $3 - i32.const 48 + i32.const 20 i32.sub - local.tee $0 - i32.const 10 - i32.ge_u + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 if - local.get $3 - i32.const 65 - i32.sub - i32.const 25 - i32.le_u - if (result i32) - local.get $3 - i32.const 55 - i32.sub - else - local.get $3 - i32.const 87 - i32.sub + local.get $7 + i32.eqz + if + local.get $6 + i32.const 1 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + i32.const 3456 + i32.store + br $folding-inner2 + end + else + local.get $7 + i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $2 + local.get $2 + local.get $7 + i32.gt_s + select + local.tee $3 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $2 + i32.load offset=4 + local.set $4 + i32.const 0 + local.set $1 + loop $for-loop|0 + local.get $1 local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=16 + local.get $5 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + br $folding-inner2 + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/rt/__newArray + local.tee $8 + i32.store offset=24 + loop $while-continue|1 + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $0 + i32.store offset=8 + local.get $6 + local.get $1 + i32.store offset=28 + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor + if + local.get $9 local.get $3 - i32.const 97 i32.sub - i32.const 25 - i32.le_u - select + local.tee $6 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + local.tee $10 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=32 + local.get $6 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $10 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=28 + local.get $8 + local.get $6 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $8 + i32.store offset=8 + local.get $3 + i32.const 3456 + i32.store offset=28 + local.get $8 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $4 + i32.const 1 + i32.add + local.tee $4 + local.get $2 + i32.eq + br_if $folding-inner3 + local.get $5 + local.get $9 + i32.add + local.set $3 + br $while-continue|1 end - local.set $0 end - local.get $0 - local.get $6 - i32.ge_u + local.get $3 + i32.eqz if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $8 + i32.store offset=8 local.get $1 - local.get $7 - i32.eq - br_if $folding-inner0 - br $while-break|2 + local.get $0 + i32.store offset=28 + local.get $8 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner3 end - local.get $5 - local.get $6 - i32.mul - local.get $0 - i32.add - local.set $5 - local.get $2 - i32.const 2 + local.get $7 + local.get $3 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=36 + local.get $2 + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.get $1 + memory.copy + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=28 + local.get $8 + local.get $2 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $8 + i32.store offset=8 + local.get $0 + i32.const 3456 + i32.store offset=28 + local.get $8 + i32.const 3456 + call $~lib/array/Array<~lib/string/String>#push + end + global.get $~lib/memory/__stack_pointer + i32.const 40 i32.add - local.set $2 - br $while-continue|2 + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $~lib/rt/__newArray + local.set $2 + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $~lib/string/String#split@varargs (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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.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 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.mul - return + i32.const 2147483647 + local.set $2 end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + local.get $2 + call $~lib/string/String#split + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 + local.get $0 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) (local $1 i32) @@ -6197,6 +6131,72 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) + (func $~lib/array/Array<~lib/string/String>#__get (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 8468 + i32.lt_s + if + i32.const 41264 + i32.const 41312 + 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 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 1392 + i32.const 6736 + 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.store + local.get $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 offset=4 + local.get $0 + i32.eqz + if + i32.const 6832 + i32.const 6736 + i32.const 118 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) (func $~lib/date/Date.fromString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -6295,9 +6295,9 @@ i32.shr_u i32.const 1 i32.sub - local.set $5 + local.set $3 loop $for-loop|0 - local.get $5 + local.get $3 i32.const 0 i32.ge_s if @@ -6321,7 +6321,7 @@ local.get $0 i32.store block $__inlined_func$~lib/string/String#charCodeAt$386 - local.get $5 + local.get $3 local.get $0 i32.const 20 i32.sub @@ -6339,7 +6339,7 @@ br $__inlined_func$~lib/string/String#charCodeAt$386 end local.get $0 - local.get $5 + local.get $3 i32.const 1 i32.shl i32.add @@ -6366,7 +6366,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $5 + local.get $3 local.get $0 i32.const 20 i32.sub @@ -6387,76 +6387,85 @@ global.get $~lib/memory/__stack_pointer local.tee $4 local.get $0 - i32.store offset=16 - i32.const 1 - global.set $~argumentsLength - local.get $0 - local.get $5 - i32.const 1 - i32.add - call $~lib/string/String#substring@varargs - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.store - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 3520 i32.store offset=8 - i32.const 1 - global.set $~argumentsLength - local.get $4 - local.get $7 + i32.const 0 + local.get $0 i32.const 3520 - call $~lib/string/String#split@varargs + local.get $3 + i32.const 1 + i32.add local.tee $4 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#__get + call $~lib/string/String#indexOf local.tee $7 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - call $~lib/util/string/strtol - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - i32.const 0 - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length - i32.const 2 - i32.ge_s + i32.const -1 + i32.xor if (result i32) global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $4 + local.get $7 + call $~lib/string/String#substring + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store local.get $4 + call $~lib/util/string/strtol + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + i32.const 1 + i32.add + call $~lib/string/String#substring@varargs + local.tee $7 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store + local.get $7 + call $~lib/util/string/strtol + local.get $4 + i32.const 60 + i32.mul + i32.add + i32.const 60000 + i32.mul + else global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.store + i32.const 1 + global.set $~argumentsLength local.get $4 + local.get $0 + local.get $3 i32.const 1 - call $~lib/array/Array<~lib/string/String>#__get + i32.add + call $~lib/string/String#substring@varargs local.tee $4 - i32.store offset=28 + i32.store offset=24 global.get $~lib/memory/__stack_pointer local.get $4 i32.store local.get $4 call $~lib/util/string/strtol - else - i32.const 0 + i32.const 3600000 + i32.mul end - local.get $7 - i32.const 60 - i32.mul - i32.add - i32.const 60000 - i32.mul local.tee $4 i32.sub local.get $4 @@ -6464,13 +6473,13 @@ i32.const 45 i32.eq select - local.set $7 + local.set $4 br $for-break0 end - local.get $5 + local.get $3 i32.const 1 i32.sub - local.set $5 + local.set $3 br $for-loop|0 end global.get $~lib/memory/__stack_pointer @@ -6480,7 +6489,7 @@ local.get $2 local.get $0 i32.const 0 - local.get $5 + local.get $3 call $~lib/string/String#substring local.tee $0 i32.store offset=12 @@ -6500,7 +6509,7 @@ i32.const 3520 call $~lib/string/String#split@varargs local.tee $0 - i32.store offset=32 + i32.store offset=28 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6512,27 +6521,27 @@ if i32.const 1056 i32.const 1104 - i32.const 89 + i32.const 96 i32.const 21 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.store - local.get $4 + local.get $3 local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.tee $4 - i32.store offset=36 + local.tee $3 + i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $4 + local.get $3 call $~lib/util/string/strtol - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6540,14 +6549,14 @@ local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.tee $4 - i32.store offset=40 + local.tee $7 + i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.store - local.get $4 + local.get $7 call $~lib/util/string/strtol - local.set $4 + local.set $7 local.get $2 i32.const 3 i32.ge_s @@ -6560,7 +6569,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $2 - i32.store offset=44 + i32.store offset=40 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -6584,7 +6593,7 @@ local.get $0 call $~lib/string/String#substring local.tee $6 - i32.store offset=48 + i32.store offset=44 global.get $~lib/memory/__stack_pointer local.get $6 i32.store @@ -6592,11 +6601,11 @@ call $~lib/util/string/strtol local.set $6 global.get $~lib/memory/__stack_pointer - local.set $8 + local.set $9 block $__inlined_func$~lib/string/String#substr$387 (result i32) global.get $~lib/memory/__stack_pointer local.get $2 - i32.store offset=16 + i32.store offset=48 local.get $0 i32.const 1 i32.add @@ -6610,10 +6619,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $8 i64.const 0 i64.store - local.get $9 + local.get $8 local.get $2 i32.store i32.const 3 @@ -6623,13 +6632,13 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $9 + local.tee $8 local.get $0 i32.const 0 i32.lt_s if local.get $0 - local.get $9 + local.get $8 i32.add local.tee $0 i32.const 0 @@ -6641,14 +6650,14 @@ end local.get $0 i32.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 i32.const 3 i32.gt_s select i32.const 1 i32.shl - local.tee $9 + local.tee $8 i32.const 0 i32.le_s if @@ -6660,7 +6669,7 @@ br $__inlined_func$~lib/string/String#substr$387 end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 2 call $~lib/rt/itcms/__new local.tee $10 @@ -6671,7 +6680,7 @@ i32.const 1 i32.shl i32.add - local.get $9 + local.get $8 memory.copy global.get $~lib/memory/__stack_pointer i32.const 8 @@ -6717,7 +6726,7 @@ i32.load i32.const -2 i32.and - local.tee $11 + local.tee $8 i32.eqz local.get $10 i32.const 6 @@ -6744,49 +6753,49 @@ local.get $10 i32.sub local.tee $0 - local.get $11 + local.get $8 i32.gt_u if local.get $0 local.get $0 i32.const 2 i32.sub - local.get $11 + local.get $8 i32.div_u - local.get $11 + local.get $8 i32.mul - local.tee $12 + local.tee $0 i32.sub - local.set $0 + local.set $11 local.get $2 local.get $10 i32.add - local.set $9 + local.set $12 loop $while-continue|0 - local.get $3 - local.get $12 - i32.lt_u + local.get $0 + local.get $5 + i32.gt_u if - local.get $3 - local.get $9 + local.get $5 + local.get $12 i32.add i32.const 1872 - local.get $11 + local.get $8 memory.copy - local.get $3 - local.get $11 + local.get $5 + local.get $8 i32.add - local.set $3 + local.set $5 br $while-continue|0 end end local.get $2 local.get $10 i32.add - local.get $12 + local.get $0 i32.add i32.const 1872 - local.get $0 + local.get $11 memory.copy else local.get $2 @@ -6803,7 +6812,7 @@ local.get $2 local.set $0 end - local.get $8 + local.get $9 local.get $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -6811,7 +6820,7 @@ i32.store local.get $0 call $~lib/util/string/strtol - local.set $3 + local.set $5 else global.get $~lib/memory/__stack_pointer local.tee $0 @@ -6910,12 +6919,12 @@ local.get $2 local.get $1 local.get $0 - local.get $5 - local.get $4 - local.get $6 local.get $3 - call $~lib/date/epochMillis local.get $7 + local.get $6 + local.get $5 + call $~lib/date/epochMillis + local.get $4 i64.extend_i32_s i64.sub call $~lib/date/Date#constructor