Improve Math routines; Add Mathf-specific prng (#297)

This commit is contained in:
Max Graey
2018-10-26 01:10:17 +03:00
committed by Daniel Wirtz
parent 4683599a82
commit 376afd45fc
14 changed files with 7725 additions and 9633 deletions

View File

@ -237,8 +237,10 @@
(global $std/array/filteredArr (mut i32) (i32.const 0))
(global $std/array/boolVal (mut i32) (i32.const 0))
(global $~lib/math/random_seeded (mut i32) (i32.const 0))
(global $~lib/math/random_state0 (mut i64) (i64.const 0))
(global $~lib/math/random_state1 (mut i64) (i64.const 0))
(global $~lib/math/random_state0_64 (mut i64) (i64.const 0))
(global $~lib/math/random_state1_64 (mut i64) (i64.const 0))
(global $~lib/math/random_state0_32 (mut i32) (i32.const 0))
(global $~lib/math/random_state1_32 (mut i32) (i32.const 0))
(global $std/array/f32ArrayTyped (mut i32) (i32.const 728))
(global $std/array/f64ArrayTyped (mut i32) (i32.const 936))
(global $std/array/i32ArrayTyped (mut i32) (i32.const 1112))
@ -4686,7 +4688,55 @@
)
)
)
(func $~lib/math/NativeMath.seedRandom (; 70 ;) (; has Stack IR ;) (type $Iv) (param $0 i64)
(func $~lib/math/splitMix32 (; 70 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(i32.xor
(tee_local $0
(i32.xor
(tee_local $0
(i32.mul
(i32.xor
(tee_local $0
(i32.add
(get_local $0)
(i32.const 1831565813)
)
)
(i32.shr_u
(get_local $0)
(i32.const 15)
)
)
(i32.or
(get_local $0)
(i32.const 1)
)
)
)
(i32.add
(get_local $0)
(i32.mul
(i32.xor
(get_local $0)
(i32.shr_u
(get_local $0)
(i32.const 7)
)
)
(i32.or
(get_local $0)
(i32.const 61)
)
)
)
)
)
(i32.shr_u
(get_local $0)
(i32.const 14)
)
)
)
(func $~lib/math/NativeMath.seedRandom (; 71 ;) (; has Stack IR ;) (type $Iv) (param $0 i64)
(if
(i64.eqz
(get_local $0)
@ -4704,18 +4754,33 @@
(set_global $~lib/math/random_seeded
(i32.const 1)
)
(set_global $~lib/math/random_state0
(set_global $~lib/math/random_state0_64
(call $~lib/math/murmurHash3
(get_local $0)
)
)
(set_global $~lib/math/random_state1
(set_global $~lib/math/random_state1_64
(call $~lib/math/murmurHash3
(get_global $~lib/math/random_state0)
(i64.xor
(get_global $~lib/math/random_state0_64)
(i64.const -1)
)
)
)
(set_global $~lib/math/random_state0_32
(call $~lib/math/splitMix32
(i32.wrap/i64
(get_local $0)
)
)
)
(set_global $~lib/math/random_state1_32
(call $~lib/math/splitMix32
(get_global $~lib/math/random_state0_32)
)
)
)
(func $~lib/internal/array/insertionSort<f32> (; 71 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<f32> (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 f32)
@ -4827,10 +4892,10 @@
)
)
)
(func $~lib/allocator/arena/__memory_free (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$v)
(func $~lib/allocator/arena/__memory_free (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$v)
(nop)
)
(func $~lib/internal/array/weakHeapSort<f32> (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<f32> (; 74 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -5215,7 +5280,7 @@
(get_local $6)
)
)
(func $~lib/array/Array<f32>#sort (; 74 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<f32>#sort (; 75 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 f32)
@ -5320,7 +5385,7 @@
)
(get_local $0)
)
(func $~lib/array/Array<f32>#sort|trampoline~anonymous|43 (; 75 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32)
(func $~lib/array/Array<f32>#sort|trampoline~anonymous|43 (; 76 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32)
(local $2 i32)
(local $3 i32)
(i32.sub
@ -5364,7 +5429,7 @@
)
)
)
(func $~lib/array/Array<f32>#sort|trampoline (; 76 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<f32>#sort|trampoline (; 77 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -5384,13 +5449,13 @@
(get_local $1)
)
)
(func $~lib/builtins/isNaN<f32> (; 77 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32)
(func $~lib/builtins/isNaN<f32> (; 78 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32)
(f32.ne
(get_local $0)
(get_local $0)
)
)
(func $std/array/isArraysEqual<f32> (; 78 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/isArraysEqual<f32> (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5485,7 +5550,7 @@
)
(i32.const 1)
)
(func $~lib/internal/array/insertionSort<f64> (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<f64> (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 f64)
@ -5597,7 +5662,7 @@
)
)
)
(func $~lib/internal/array/weakHeapSort<f64> (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<f64> (; 81 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -5982,7 +6047,7 @@
(get_local $6)
)
)
(func $~lib/array/Array<f64>#sort (; 81 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<f64>#sort (; 82 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 f64)
@ -6087,7 +6152,7 @@
)
(get_local $0)
)
(func $~lib/array/Array<f64>#sort|trampoline~anonymous|44 (; 82 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32)
(func $~lib/array/Array<f64>#sort|trampoline~anonymous|44 (; 83 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i64)
(i32.sub
@ -6131,7 +6196,7 @@
)
)
)
(func $~lib/array/Array<f64>#sort|trampoline (; 83 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<f64>#sort|trampoline (; 84 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6151,7 +6216,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<f64>#__get (; 84 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64)
(func $~lib/array/Array<f64>#__get (; 85 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64)
(if (result f64)
(i32.lt_u
(get_local $1)
@ -6178,13 +6243,13 @@
(unreachable)
)
)
(func $~lib/builtins/isNaN<f64> (; 85 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/builtins/isNaN<f64> (; 86 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(f64.ne
(get_local $0)
(get_local $0)
)
)
(func $std/array/isArraysEqual<f64> (; 86 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/isArraysEqual<f64> (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6279,7 +6344,7 @@
)
(i32.const 1)
)
(func $~lib/internal/array/insertionSort<i32> (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/insertionSort<i32> (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6394,7 +6459,7 @@
)
)
)
(func $~lib/internal/array/weakHeapSort<i32> (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/array/weakHeapSort<i32> (; 89 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6779,7 +6844,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<i32>#sort (; 89 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6883,13 +6948,13 @@
)
(get_local $0)
)
(func $~lib/array/Array<i32>#sort|trampoline~anonymous|45 (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#sort|trampoline~anonymous|45 (; 91 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $0)
(get_local $1)
)
)
(func $~lib/array/Array<i32>#sort|trampoline (; 91 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>#sort|trampoline (; 92 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6909,7 +6974,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<u32>#sort|trampoline~anonymous|46 (; 92 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#sort|trampoline~anonymous|46 (; 93 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.gt_u
(get_local $0)
@ -6921,7 +6986,7 @@
)
)
)
(func $~lib/array/Array<u32>#sort|trampoline (; 93 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<u32>#sort|trampoline (; 94 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(block $1of1
(block $0of1
@ -6941,7 +7006,7 @@
(get_local $1)
)
)
(func $std/array/createReverseOrderedArray (; 94 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createReverseOrderedArray (; 95 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(set_local $1
(call $~lib/array/Array<i32>#constructor
@ -6985,7 +7050,7 @@
)
(get_local $1)
)
(func $~lib/math/NativeMath.random (; 95 ;) (; has Stack IR ;) (type $F) (result f64)
(func $~lib/math/NativeMath.random (; 96 ;) (; has Stack IR ;) (type $F) (result f64)
(local $0 i64)
(local $1 i64)
(if
@ -6996,21 +7061,21 @@
(call $~lib/env/abort
(i32.const 0)
(i32.const 456)
(i32.const 962)
(i32.const 964)
(i32.const 24)
)
(unreachable)
)
)
(set_local $0
(get_global $~lib/math/random_state0)
(get_global $~lib/math/random_state0_64)
)
(set_global $~lib/math/random_state0
(set_global $~lib/math/random_state0_64
(tee_local $1
(get_global $~lib/math/random_state1)
(get_global $~lib/math/random_state1_64)
)
)
(set_global $~lib/math/random_state1
(set_global $~lib/math/random_state1_64
(tee_local $0
(i64.xor
(i64.xor
@ -7054,7 +7119,7 @@
(f64.const 1)
)
)
(func $std/array/createRandomOrderedArray (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createRandomOrderedArray (; 97 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 f64)
(set_local $0
@ -7100,7 +7165,7 @@
)
(get_local $0)
)
(func $std/array/isSorted<i32> (; 97 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isSorted<i32> (; 98 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7165,7 +7230,7 @@
)
(i32.const 1)
)
(func $std/array/assertSorted<i32> (; 98 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<i32> (; 99 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -7187,19 +7252,19 @@
)
)
)
(func $std/array/assertSortedDefault<i32> (; 99 ;) (; has Stack IR ;) (type $iv) (param $0 i32)
(func $std/array/assertSortedDefault<i32> (; 100 ;) (; has Stack IR ;) (type $iv) (param $0 i32)
(call $std/array/assertSorted<i32>
(get_local $0)
(i32.const 47)
)
)
(func $start~anonymous|49 (; 100 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|49 (; 101 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(get_local $1)
(get_local $0)
)
)
(func $std/array/createReverseOrderedNestedArray (; 101 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createReverseOrderedNestedArray (; 102 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -7257,7 +7322,7 @@
)
(get_local $1)
)
(func $start~anonymous|52 (; 102 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|52 (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(set_local $0
(call $~lib/array/Array<u32>#__get
(get_local $0)
@ -7275,7 +7340,7 @@
(get_local $1)
)
)
(func $~lib/array/Array<Array<i32>>#sort (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<i32>>#sort (; 104 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7368,7 +7433,7 @@
)
(get_local $0)
)
(func $std/array/assertSorted<Array<i32>> (; 104 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(func $std/array/assertSorted<Array<i32>> (; 105 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32)
(if
(i32.eqz
(call $std/array/isSorted<i32>
@ -7390,7 +7455,7 @@
)
)
)
(func $std/array/Proxy<i32>#constructor (; 105 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/Proxy<i32>#constructor (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(i32.store
(tee_local $1
@ -7402,7 +7467,7 @@
)
(get_local $1)
)
(func $std/array/createReverseOrderedElementsArray (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createReverseOrderedElementsArray (; 107 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -7450,7 +7515,7 @@
)
(get_local $1)
)
(func $start~anonymous|53 (; 107 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|53 (; 108 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.sub
(i32.load
(get_local $0)
@ -7460,7 +7525,7 @@
)
)
)
(func $~lib/internal/string/compareUnsafe (; 108 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/string/compareUnsafe (; 109 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(set_local $3
@ -7511,7 +7576,7 @@
)
(get_local $4)
)
(func $~lib/string/String.__gt (; 109 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__gt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(if
@ -7586,7 +7651,7 @@
(i32.const 0)
)
)
(func $~lib/string/String.__lt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__lt (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(if
@ -7661,7 +7726,7 @@
(i32.const 0)
)
)
(func $start~anonymous|54 (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start~anonymous|54 (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(set_local $2
(call $~lib/string/String.__gt
@ -7680,7 +7745,7 @@
(get_local $0)
)
)
(func $~lib/string/String.__eq (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(if
(i32.eq
@ -7734,7 +7799,7 @@
)
)
)
(func $~lib/string/String.__ne (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__ne (; 114 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(i32.eqz
(call $~lib/string/String.__eq
(get_local $0)
@ -7742,7 +7807,7 @@
)
)
)
(func $std/array/isArraysEqual<String> (; 114 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isArraysEqual<String> (; 115 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7813,7 +7878,7 @@
)
(i32.const 1)
)
(func $~lib/internal/string/allocateUnsafe (; 115 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/string/allocateUnsafe (; 116 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(tee_local $1
@ -7859,7 +7924,7 @@
)
(get_local $1)
)
(func $~lib/string/String#charAt (; 116 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#charAt (; 117 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(if
(i32.ge_u
@ -7890,7 +7955,7 @@
)
(get_local $1)
)
(func $~lib/internal/string/copyUnsafe (; 117 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
(func $~lib/internal/string/copyUnsafe (; 118 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
(call $~lib/internal/memory/memmove
(i32.add
(i32.add
@ -7918,7 +7983,7 @@
)
)
)
(func $~lib/string/String#concat (; 118 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7985,7 +8050,7 @@
)
(get_local $2)
)
(func $~lib/string/String.__concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 120 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(if
(i32.eqz
(get_local $0)
@ -7999,7 +8064,7 @@
(get_local $1)
)
)
(func $std/array/createRandomString (; 120 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $std/array/createRandomString (; 121 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8047,7 +8112,7 @@
)
(get_local $1)
)
(func $std/array/createRandomStringArray (; 121 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createRandomStringArray (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -8092,7 +8157,7 @@
)
(get_local $1)
)
(func $~lib/string/String#substring (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -8208,7 +8273,7 @@
)
(get_local $2)
)
(func $~lib/array/Array<bool>#join (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<bool>#join (; 124 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -8421,7 +8486,7 @@
)
(get_local $1)
)
(func $~lib/internal/number/decimalCount32 (; 124 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/decimalCount32 (; 125 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(if (result i32)
(i32.lt_u
(get_local $0)
@ -8487,7 +8552,7 @@
)
)
)
(func $~lib/internal/number/utoa32_lut (; 125 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/internal/number/utoa32_lut (; 126 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(set_local $3
@ -8648,7 +8713,7 @@
)
)
)
(func $~lib/internal/number/itoa32 (; 126 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa32 (; 127 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8701,12 +8766,12 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<i32> (; 127 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<i32> (; 128 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/itoa32
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<i32> (; 128 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<i32> (; 129 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -8769,7 +8834,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i32>#join (; 129 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#join (; 130 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -8947,7 +9012,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/utoa32 (; 130 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/utoa32 (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(if
@ -8973,12 +9038,12 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<u32> (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u32> (; 132 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<u32> (; 132 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u32> (; 133 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -9015,7 +9080,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u32>#join (; 133 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#join (; 134 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -9193,7 +9258,7 @@
)
(get_local $3)
)
(func $~lib/builtins/isFinite<f64> (; 134 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/builtins/isFinite<f64> (; 135 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(f64.eq
(f64.sub
(get_local $0)
@ -9202,7 +9267,7 @@
(f64.const 0)
)
)
(func $~lib/internal/number/genDigits (; 135 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(func $~lib/internal/number/genDigits (; 136 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(local $7 i32)
(local $8 i64)
(local $9 i32)
@ -9801,7 +9866,7 @@
)
)
)
(func $~lib/internal/number/prettify (; 136 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/prettify (; 137 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(if
@ -10189,7 +10254,7 @@
)
)
)
(func $~lib/internal/number/dtoa_core (; 137 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/internal/number/dtoa_core (; 138 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i32)
(local $4 i64)
@ -10694,7 +10759,7 @@
(get_local $14)
)
)
(func $~lib/internal/number/dtoa (; 138 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(func $~lib/internal/number/dtoa (; 139 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
(if
@ -10766,7 +10831,7 @@
(call $~lib/allocator/arena/__memory_free)
(get_local $2)
)
(func $~lib/internal/number/dtoa_stream (; 139 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
(func $~lib/internal/number/dtoa_stream (; 140 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -10865,7 +10930,7 @@
(get_local $2)
)
)
(func $~lib/array/Array<f64>#join (; 140 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<f64>#join (; 141 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11044,7 +11109,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<String>#join (; 141 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<String>#join (; 142 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -11243,12 +11308,12 @@
)
(get_local $0)
)
(func $std/array/Ref#constructor (; 142 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $std/array/Ref#constructor (; 143 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(call $~lib/memory/memory.allocate
(i32.const 0)
)
)
(func $~lib/array/Array<Ref>#__unchecked_set (; 143 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<Ref>#__unchecked_set (; 144 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(i32.store offset=8
(i32.add
(i32.load
@ -11262,7 +11327,7 @@
(get_local $2)
)
)
(func $~lib/array/Array<Ref>#join (; 144 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Ref>#join (; 145 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -11446,7 +11511,7 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<i8> (; 145 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<i8> (; 146 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/itoa32
(i32.shr_s
(i32.shl
@ -11457,7 +11522,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<i8> (; 146 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<i8> (; 147 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -11541,7 +11606,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i8>#join (; 147 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<i8>#join (; 148 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11714,7 +11779,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/itoa<u16> (; 148 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u16> (; 149 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(i32.and
(get_local $0)
@ -11722,7 +11787,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<u16> (; 149 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u16> (; 150 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -11768,7 +11833,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u16>#join (; 150 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<u16>#join (; 151 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -11947,7 +12012,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/decimalCount64 (; 151 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/decimalCount64 (; 152 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(if (result i32)
(i64.lt_u
(get_local $0)
@ -12013,7 +12078,7 @@
)
)
)
(func $~lib/internal/number/utoa64_lut (; 152 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/internal/number/utoa64_lut (; 153 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -12159,7 +12224,7 @@
(get_local $2)
)
)
(func $~lib/internal/number/utoa64 (; 153 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/utoa64 (; 154 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12209,12 +12274,12 @@
)
(get_local $2)
)
(func $~lib/internal/number/itoa<u64> (; 154 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa<u64> (; 155 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(call $~lib/internal/number/utoa64
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<u64> (; 155 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/internal/number/itoa_stream<u64> (; 156 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -12275,7 +12340,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<u64>#join (; 156 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<u64>#join (; 157 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -12454,7 +12519,7 @@
)
(get_local $3)
)
(func $~lib/internal/number/itoa64 (; 157 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa64 (; 158 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12536,12 +12601,12 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<i64> (; 158 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(func $~lib/internal/number/itoa<i64> (; 159 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32)
(call $~lib/internal/number/itoa64
(get_local $0)
)
)
(func $~lib/internal/number/itoa_stream<i64> (; 159 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/internal/number/itoa_stream<i64> (; 160 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
(local $4 i32)
(set_local $0
@ -12634,7 +12699,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<i64>#join (; 160 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(func $~lib/array/Array<i64>#join (; 161 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -12813,7 +12878,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<Array<i32>>#join (; 161 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<i32>>#join (; 162 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -12957,7 +13022,7 @@
)
(get_local $1)
)
(func $~lib/internal/number/itoa<u8> (; 162 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/internal/number/itoa<u8> (; 163 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32)
(call $~lib/internal/number/utoa32
(i32.and
(get_local $0)
@ -12965,7 +13030,7 @@
)
)
)
(func $~lib/internal/number/itoa_stream<u8> (; 163 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/internal/number/itoa_stream<u8> (; 164 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(set_local $0
(i32.add
@ -13011,7 +13076,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<u8>#join (; 164 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u8>#join (; 165 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13183,7 +13248,7 @@
)
(get_local $3)
)
(func $~lib/array/Array<Array<u8>>#join (; 165 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#join (; 166 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -13327,7 +13392,7 @@
)
(get_local $1)
)
(func $~lib/array/Array<Array<u32>>#join (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u32>>#join (; 167 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13471,7 +13536,7 @@
)
(get_local $2)
)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 167 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 168 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -13615,7 +13680,7 @@
)
(get_local $1)
)
(func $start (; 168 ;) (; has Stack IR ;) (type $v)
(func $start (; 169 ;) (; has Stack IR ;) (type $v)
(local $0 i32)
(local $1 i32)
(local $2 f32)
@ -17577,7 +17642,7 @@
)
)
)
(func $null (; 169 ;) (; has Stack IR ;) (type $v)
(func $null (; 170 ;) (; has Stack IR ;) (type $v)
(nop)
)
)