mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-25 15:12:12 +00:00
Fix default comparator for strings (#462)
This commit is contained in:
parent
f551bc78e1
commit
41a89fa773
@ -36,8 +36,13 @@ export function COMPARATOR<T>(): (a: T, b: T) => i32 {
|
||||
}
|
||||
} else if (isString<T>()) {
|
||||
return (a: T, b: T): i32 => {
|
||||
var sa = <string>a, sb = <string>b;
|
||||
return compareUnsafe(sa, 0, sb, 0, min(sa.length, sb.length));
|
||||
if (a === b || a === null || b === null) return 0;
|
||||
var alen = (<string>a).length;
|
||||
var blen = (<string>b).length;
|
||||
if (!alen && !blen) return 0;
|
||||
if (!alen) return -1;
|
||||
if (!blen) return 1;
|
||||
return compareUnsafe(<string>a, 0, <string>b, 0, <usize>min(alen, blen));
|
||||
};
|
||||
} else {
|
||||
return (a: T, b: T): i32 => (<i32>(a > b) - <i32>(a < b));
|
||||
|
@ -26,6 +26,7 @@
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
|
||||
(import "Math" "random" (func $~lib/bindings/Math/random (result f64)))
|
||||
(memory $0 1)
|
||||
@ -337,8 +338,8 @@
|
||||
(data (i32.const 8400) "\c0 \00\00\01")
|
||||
(data (i32.const 8408) "\04\00\00\00\00\00\00\00\d0 ")
|
||||
(data (i32.const 8424) "\d8 \00\00\01")
|
||||
(table $0 57 funcref)
|
||||
(elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|3 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|17 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|30 $start~anonymous|30 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|30 $start~anonymous|36 $start~anonymous|30 $start~anonymous|30 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|30 $start~anonymous|36 $~lib/internal/sort/COMPARATOR<f32>~anonymous|44 $~lib/internal/sort/COMPARATOR<f64>~anonymous|45 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $~lib/internal/sort/COMPARATOR<u32>~anonymous|47 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $start~anonymous|50 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $start~anonymous|50 $start~anonymous|53 $start~anonymous|54 $start~anonymous|55 $start~anonymous|55)
|
||||
(table $0 56 funcref)
|
||||
(elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|3 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|17 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|30 $start~anonymous|30 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|30 $start~anonymous|36 $start~anonymous|30 $start~anonymous|30 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|30 $start~anonymous|36 $~lib/internal/sort/COMPARATOR<f32>~anonymous|44 $~lib/internal/sort/COMPARATOR<f64>~anonymous|45 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $~lib/internal/sort/COMPARATOR<u32>~anonymous|47 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $start~anonymous|50 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $start~anonymous|50 $start~anonymous|53 $start~anonymous|54 $~lib/internal/sort/COMPARATOR<String>~anonymous|55)
|
||||
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/internal/number/_K (mut i32) (i32.const 0))
|
||||
@ -5965,9 +5966,10 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/string/String.__gt (; 100 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/internal/sort/COMPARATOR<String>~anonymous|55 (; 100 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.eq
|
||||
@ -5995,12 +5997,25 @@
|
||||
local.set $3
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
local.tee $4
|
||||
i32.eqz
|
||||
local.tee $2
|
||||
if
|
||||
local.get $3
|
||||
i32.eqz
|
||||
local.set $2
|
||||
end
|
||||
local.get $2
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
i32.const -1
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
i32.eqz
|
||||
if
|
||||
@ -6009,80 +6024,35 @@
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
local.get $2
|
||||
local.get $3
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.lt_s
|
||||
select
|
||||
call $~lib/internal/string/compareUnsafe
|
||||
i32.const 0
|
||||
i32.gt_s
|
||||
)
|
||||
(func $~lib/string/String.__lt (; 101 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.eq
|
||||
local.get $4
|
||||
local.tee $2
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
i32.eqz
|
||||
local.set $2
|
||||
end
|
||||
local.get $2
|
||||
i32.eqz
|
||||
if
|
||||
local.get $1
|
||||
i32.eqz
|
||||
local.set $2
|
||||
end
|
||||
local.get $2
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.set $2
|
||||
local.get $1
|
||||
i32.load
|
||||
local.tee $3
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 1
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
local.get $2
|
||||
local.get $3
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.lt_s
|
||||
select
|
||||
call $~lib/internal/string/compareUnsafe
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
)
|
||||
(func $start~anonymous|55 (; 102 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $std/array/assertSorted<String>|trampoline (; 101 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $1of1
|
||||
block $0of1
|
||||
block $outOfRange
|
||||
global.get $~argc
|
||||
i32.const 1
|
||||
i32.sub
|
||||
br_table $0of1 $1of1 $outOfRange
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
i32.const 55
|
||||
local.set $1
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/string/String.__gt
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/string/String.__lt
|
||||
i32.sub
|
||||
call $std/array/assertSorted<Array<i32>>
|
||||
)
|
||||
(func $~lib/string/String.__eq (; 103 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/string/String.__eq (; 102 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
@ -6121,7 +6091,7 @@
|
||||
call $~lib/internal/string/compareUnsafe
|
||||
i32.eqz
|
||||
)
|
||||
(func $std/array/isArraysEqual<String> (; 104 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $std/array/isArraysEqual<String> (; 103 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -6199,7 +6169,7 @@
|
||||
end
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/internal/string/allocateUnsafe (; 105 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(func $~lib/internal/string/allocateUnsafe (; 104 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
@ -6232,7 +6202,7 @@
|
||||
i32.store
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/string/String#charAt (; 106 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/string/String#charAt (; 105 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.const 2928
|
||||
@ -6254,7 +6224,7 @@
|
||||
i32.store16 offset=4
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/string/copyUnsafe (; 107 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
|
||||
(func $~lib/internal/string/copyUnsafe (; 106 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.shl
|
||||
@ -6274,7 +6244,7 @@
|
||||
i32.shl
|
||||
call $~lib/internal/memory/memmove
|
||||
)
|
||||
(func $~lib/string/String#concat (; 108 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/string/String#concat (; 107 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -6321,7 +6291,7 @@
|
||||
call $~lib/internal/string/copyUnsafe
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/string/String.__concat (; 109 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/string/String.__concat (; 108 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 4144
|
||||
local.get $0
|
||||
@ -6329,7 +6299,7 @@
|
||||
local.get $1
|
||||
call $~lib/string/String#concat
|
||||
)
|
||||
(func $std/array/createRandomString (; 110 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(func $std/array/createRandomString (; 109 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
i32.const 3904
|
||||
@ -6360,7 +6330,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $std/array/createRandomStringArray (; 111 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $std/array/createRandomStringArray (; 110 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 400
|
||||
@ -6389,7 +6359,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/string/String#substring (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/string/String#substring (; 111 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -6471,7 +6441,7 @@
|
||||
call $~lib/internal/string/copyUnsafe
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/array/Array<bool>#join (; 113 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<bool>#join (; 112 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -6617,7 +6587,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/internal/number/decimalCount32 (; 114 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(func $~lib/internal/number/decimalCount32 (; 113 ;) (type $ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 100000
|
||||
i32.lt_u
|
||||
@ -6671,7 +6641,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/internal/number/utoa32_lut (; 115 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/internal/number/utoa32_lut (; 114 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
i32.const 4832
|
||||
@ -6781,7 +6751,7 @@
|
||||
i32.store16 offset=4
|
||||
end
|
||||
)
|
||||
(func $~lib/internal/number/itoa32 (; 116 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa32 (; 115 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -6819,7 +6789,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<i32> (; 117 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<i32> (; 116 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.shl
|
||||
@ -6863,7 +6833,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/array/Array<i32>#join (; 118 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<i32>#join (; 117 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -6979,7 +6949,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/internal/number/utoa32 (; 119 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(func $~lib/internal/number/utoa32 (; 118 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -6998,7 +6968,7 @@
|
||||
call $~lib/internal/number/utoa32_lut
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<u32> (; 120 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<u32> (; 119 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
@ -7023,7 +6993,7 @@
|
||||
call $~lib/internal/number/utoa32_lut
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/array/Array<u32>#join (; 121 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<u32>#join (; 120 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -7139,7 +7109,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/internal/number/genDigits (; 122 ;) (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 (; 121 ;) (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)
|
||||
@ -7553,7 +7523,7 @@
|
||||
local.get $10
|
||||
end
|
||||
)
|
||||
(func $~lib/internal/number/prettify (; 123 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/prettify (; 122 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -7827,7 +7797,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/internal/number/dtoa_core (; 124 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
|
||||
(func $~lib/internal/number/dtoa_core (; 123 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32)
|
||||
(local $2 i64)
|
||||
(local $3 i64)
|
||||
(local $4 i32)
|
||||
@ -8143,7 +8113,7 @@
|
||||
local.get $12
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/internal/number/dtoa (; 125 ;) (type $Fi) (param $0 f64) (result i32)
|
||||
(func $~lib/internal/number/dtoa (; 124 ;) (type $Fi) (param $0 f64) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -8196,7 +8166,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/number/dtoa_stream (; 126 ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
|
||||
(func $~lib/internal/number/dtoa_stream (; 125 ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.shl
|
||||
@ -8269,7 +8239,7 @@
|
||||
local.get $2
|
||||
call $~lib/internal/number/dtoa_core
|
||||
)
|
||||
(func $~lib/array/Array<f64>#join (; 127 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<f64>#join (; 126 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -8386,7 +8356,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<String>#join (; 128 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<String>#join (; 127 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -8522,7 +8492,7 @@
|
||||
end
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/array/Array<Ref>#join (; 129 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<Ref>#join (; 128 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -8652,7 +8622,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<i8> (; 130 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<i8> (; 129 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
@ -8707,7 +8677,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<i8>#join (; 131 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<i8>#join (; 130 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -8820,7 +8790,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<u16> (; 132 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<u16> (; 131 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.shl
|
||||
@ -8850,7 +8820,7 @@
|
||||
call $~lib/internal/number/utoa32_lut
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<u16>#join (; 133 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<u16>#join (; 132 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -8967,7 +8937,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/number/decimalCount64 (; 134 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
(func $~lib/internal/number/decimalCount64 (; 133 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
local.get $0
|
||||
i64.const 1000000000000000
|
||||
i64.lt_u
|
||||
@ -9021,7 +8991,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/internal/number/utoa64_lut (; 135 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
|
||||
(func $~lib/internal/number/utoa64_lut (; 134 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -9118,7 +9088,7 @@
|
||||
local.get $2
|
||||
call $~lib/internal/number/utoa32_lut
|
||||
)
|
||||
(func $~lib/internal/number/utoa64 (; 136 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
(func $~lib/internal/number/utoa64 (; 135 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -9154,7 +9124,7 @@
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<u64> (; 137 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<u64> (; 136 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
@ -9194,7 +9164,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/array/Array<u64>#join (; 138 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<u64>#join (; 137 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -9311,7 +9281,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/number/itoa64 (; 139 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
(func $~lib/internal/number/itoa64 (; 138 ;) (type $Ii) (param $0 i64) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -9370,7 +9340,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<i64> (; 140 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<i64> (; 139 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
@ -9433,7 +9403,7 @@
|
||||
end
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/array/Array<i64>#join (; 141 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $~lib/array/Array<i64>#join (; 140 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -9550,7 +9520,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<Array<i32>>#join (; 142 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<Array<i32>>#join (; 141 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -9645,7 +9615,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/internal/number/itoa_stream<u8> (; 143 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/internal/number/itoa_stream<u8> (; 142 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
local.get $1
|
||||
i32.const 1
|
||||
i32.shl
|
||||
@ -9675,7 +9645,7 @@
|
||||
call $~lib/internal/number/utoa32_lut
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<u8>#join (; 144 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<u8>#join (; 143 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -9787,7 +9757,7 @@
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $~lib/array/Array<Array<u8>>#join (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<Array<u8>>#join (; 144 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -9882,7 +9852,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<Array<u32>>#join (; 146 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<Array<u32>>#join (; 145 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -9978,7 +9948,7 @@
|
||||
local.get $2
|
||||
end
|
||||
)
|
||||
(func $~lib/array/Array<Array<Array<u32>>>#join (; 147 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<Array<Array<u32>>>#join (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -10073,7 +10043,7 @@
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $start (; 148 ;) (type $v)
|
||||
(func $start (; 147 ;) (type $v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 8432
|
||||
@ -14214,9 +14184,10 @@
|
||||
global.get $std/array/reversedElements512
|
||||
i32.const 54
|
||||
call $std/array/assertSorted<Array<i32>>
|
||||
i32.const 1
|
||||
global.set $~argc
|
||||
global.get $std/array/randomStringsActual
|
||||
i32.const 55
|
||||
call $std/array/assertSorted<Array<i32>>
|
||||
call $std/array/assertSorted<String>|trampoline
|
||||
global.get $std/array/randomStringsActual
|
||||
global.get $std/array/randomStringsExpected
|
||||
call $std/array/isArraysEqual<String>
|
||||
@ -14224,16 +14195,17 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 900
|
||||
i32.const 901
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
call $std/array/createRandomStringArray
|
||||
global.set $std/array/randomStrings400
|
||||
i32.const 1
|
||||
global.set $~argc
|
||||
global.get $std/array/randomStrings400
|
||||
i32.const 56
|
||||
call $std/array/assertSorted<Array<i32>>
|
||||
call $std/array/assertSorted<String>|trampoline
|
||||
call $~lib/array/Array<bool>#join
|
||||
i32.const 4248
|
||||
call $~lib/string/String.__eq
|
||||
@ -14241,7 +14213,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 909
|
||||
i32.const 910
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14255,7 +14227,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 910
|
||||
i32.const 911
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14269,7 +14241,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 911
|
||||
i32.const 912
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14283,7 +14255,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 912
|
||||
i32.const 913
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14295,7 +14267,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 913
|
||||
i32.const 914
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14309,7 +14281,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 914
|
||||
i32.const 915
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14349,7 +14321,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 916
|
||||
i32.const 917
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14363,7 +14335,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 920
|
||||
i32.const 921
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14377,7 +14349,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 921
|
||||
i32.const 922
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14391,7 +14363,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 922
|
||||
i32.const 923
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14405,7 +14377,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 923
|
||||
i32.const 924
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14417,7 +14389,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 925
|
||||
i32.const 926
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14429,7 +14401,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 926
|
||||
i32.const 927
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14441,7 +14413,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 927
|
||||
i32.const 928
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14453,7 +14425,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 928
|
||||
i32.const 929
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14467,7 +14439,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 929
|
||||
i32.const 930
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14481,7 +14453,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 930
|
||||
i32.const 931
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14494,7 +14466,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 933
|
||||
i32.const 934
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14507,7 +14479,7 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 936
|
||||
i32.const 937
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
@ -14520,13 +14492,13 @@
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 120
|
||||
i32.const 939
|
||||
i32.const 940
|
||||
i32.const 0
|
||||
call $~lib/env/abort
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $null (; 149 ;) (type $v)
|
||||
(func $null (; 148 ;) (type $v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -806,7 +806,7 @@ function createRandomStringArray(size: i32): string[] {
|
||||
return arr;
|
||||
}
|
||||
|
||||
function assertSorted<T>(arr: Array<T>, comparator: (a: T, b: T) => i32): void {
|
||||
function assertSorted<T>(arr: Array<T>, comparator: (a: T, b: T) => i32 = COMPARATOR<T>()): void {
|
||||
assert(isSorted<T>(arr.sort(comparator), comparator));
|
||||
}
|
||||
|
||||
@ -896,11 +896,12 @@ assertSorted<Proxy<i32>>(reversedElements512, (a: Proxy<i32>, b: Proxy<i32>): i3
|
||||
|
||||
var randomStringsActual: string[] = ["a", "b", "a", "ab", "ba", "", null];
|
||||
var randomStringsExpected: string[] = ["", "a", "a", "ab", "b", "ba", null];
|
||||
assertSorted<string>(randomStringsActual, (a: string, b: string): i32 => <i32>(a > b) - <i32>(a < b));
|
||||
|
||||
assertSorted<string>(randomStringsActual);
|
||||
assert(isArraysEqual<string>(randomStringsActual, randomStringsExpected));
|
||||
|
||||
var randomStrings400 = createRandomStringArray(400);
|
||||
assertSorted<string>(randomStrings400, (a: string, b: string): i32 => <i32>(a > b) - <i32>(a < b));
|
||||
assertSorted<string>(randomStrings400);
|
||||
|
||||
// Array#join //////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user