Rework resolver (#489)

* Rework IR and resolver to use nested lookup tables
* Integrate types into IR
* Make components prefer IR, slimmed down AST
* Implement `export *`
* Add `@lazy` annotation and remove `--noTreeShaking`
* Add `@start` annotation and remove magic `main`
* Related refactoring, cleanup and docs
This commit is contained in:
Daniel Wirtz
2019-02-21 00:11:22 +01:00
committed by GitHub
parent e623786b42
commit 0c64f21250
234 changed files with 16949 additions and 37871 deletions

View File

@ -1,4 +1,5 @@
(module
(type $_ (func))
(type $iii (func (param i32 i32) (result i32)))
(type $iiii_ (func (param i32 i32 i32 i32)))
(type $ii (func (param i32) (result i32)))
@ -20,7 +21,6 @@
(type $Ii (func (param i64) (result i32)))
(type $iIi_ (func (param i32 i64 i32)))
(type $iiIi (func (param i32 i32 i64) (result i32)))
(type $_ (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
@ -339,19 +339,13 @@
(data (i32.const 8408) "\04\00\00\00\00\00\00\00\d0 ")
(data (i32.const 8424) "\d8 \00\00\01")
(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)
(elem (i32.const 0) $null $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|3 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|17 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|30 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|30 $start:std/array~anonymous|36 $start:std/array~anonymous|30 $start:std/array~anonymous|30 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|30 $start:std/array~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:std/array~anonymous|50 $~lib/internal/sort/COMPARATOR<i32>~anonymous|46 $start:std/array~anonymous|50 $start:std/array~anonymous|53 $start:std/array~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))
(global $~lib/internal/number/_exp (mut i32) (i32.const 0))
(global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0))
(global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0))
(global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0))
(global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0))
(global $std/array/arr (mut i32) (i32.const 0))
(global $std/array/Null (mut i32) (i32.const 0))
(global $std/array/arr8 (mut i32) (i32.const 232))
(global $~argc (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $std/array/arr32 (mut i32) (i32.const 392))
(global $std/array/i (mut i32) (i32.const 0))
(global $std/array/other (mut i32) (i32.const 0))
@ -391,6 +385,12 @@
(global $std/array/randomStringsActual (mut i32) (i32.const 3976))
(global $std/array/randomStringsExpected (mut i32) (i32.const 4048))
(global $std/array/randomStrings400 (mut i32) (i32.const 0))
(global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0))
(global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0))
(global $~lib/internal/number/_exp (mut i32) (i32.const 0))
(global $~lib/internal/number/_K (mut i32) (i32.const 0))
(global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0))
(global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0))
(global $std/array/refArr (mut i32) (i32.const 0))
(global $std/array/subarr32 (mut i32) (i32.const 8256))
(global $std/array/subarr8 (mut i32) (i32.const 8352))
@ -962,7 +962,7 @@
block $1of2
block $0of2
block $outOfRange
global.get $~argc
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of2 $1of2 $2of2 $outOfRange
@ -1144,7 +1144,7 @@
block $1of2
block $0of2
block $outOfRange
global.get $~argc
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of2 $1of2 $2of2 $outOfRange
@ -2653,7 +2653,7 @@
block $1of1
block $0of1
block $outOfRange
global.get $~argc
global.get $~lib/argc
i32.const 2
i32.sub
br_table $0of1 $1of1 $outOfRange
@ -3009,7 +3009,7 @@
block $1of1
block $0of1
block $outOfRange
global.get $~argc
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of1 $1of1 $outOfRange
@ -3070,7 +3070,7 @@
local.get $2
i32.store offset=8
)
(func $start~anonymous|1 (; 28 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|1 (; 28 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.eqz
)
@ -3095,7 +3095,7 @@
i32.ge_s
br_if $break|0
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $0
i32.load
local.get $3
@ -3123,17 +3123,17 @@
end
i32.const -1
)
(func $start~anonymous|2 (; 30 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|2 (; 30 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 1
i32.eq
)
(func $start~anonymous|3 (; 31 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|3 (; 31 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 100
i32.eq
)
(func $start~anonymous|4 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|4 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3142,7 +3142,7 @@
i32.const 100
i32.eq
)
(func $start~anonymous|6 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|6 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3150,7 +3150,7 @@
i32.const 100
i32.eq
)
(func $start~anonymous|7 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|7 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 0
i32.ge_s
@ -3176,7 +3176,7 @@
i32.ge_s
br_if $break|0
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $0
i32.load
local.get $3
@ -3204,12 +3204,12 @@
end
i32.const 1
)
(func $start~anonymous|8 (; 36 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|8 (; 36 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 0
i32.le_s
)
(func $start~anonymous|9 (; 37 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|9 (; 37 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3218,12 +3218,12 @@
i32.const 10
i32.lt_s
)
(func $start~anonymous|10 (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|10 (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 10
i32.lt_s
)
(func $start~anonymous|11 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|11 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3231,7 +3231,7 @@
i32.const 3
i32.lt_s
)
(func $start~anonymous|12 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|12 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 3
i32.ge_s
@ -3257,7 +3257,7 @@
i32.ge_s
br_if $break|0
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $0
i32.load
local.get $3
@ -3285,12 +3285,12 @@
end
i32.const 0
)
(func $start~anonymous|13 (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|13 (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const -1
i32.le_s
)
(func $start~anonymous|14 (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|14 (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3299,12 +3299,12 @@
i32.const 10
i32.gt_s
)
(func $start~anonymous|15 (; 44 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|15 (; 44 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 10
i32.gt_s
)
(func $start~anonymous|16 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|16 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3312,7 +3312,7 @@
i32.const 3
i32.gt_s
)
(func $start~anonymous|17 (; 46 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
(func $start:std/array~anonymous|17 (; 46 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
global.get $std/array/i
local.get $0
i32.add
@ -3339,7 +3339,7 @@
i32.ge_s
br_if $break|0
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $0
i32.load
local.get $3
@ -3362,7 +3362,7 @@
unreachable
end
)
(func $start~anonymous|18 (; 48 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
(func $start:std/array~anonymous|18 (; 48 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3372,7 +3372,7 @@
i32.add
global.set $std/array/i
)
(func $start~anonymous|20 (; 49 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
(func $start:std/array~anonymous|20 (; 49 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3381,7 +3381,7 @@
i32.add
global.set $std/array/i
)
(func $start~anonymous|21 (; 50 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
(func $start:std/array~anonymous|21 (; 50 ;) (type $iii_) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
local.get $1
i32.eqz
@ -3480,7 +3480,7 @@
end
end
)
(func $start~anonymous|22 (; 51 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
(func $start:std/array~anonymous|22 (; 51 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
local.get $0
f32.convert_i32_s
)
@ -3510,7 +3510,7 @@
i32.lt_s
if
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $1
local.tee $2
i32.const 2
@ -3537,7 +3537,7 @@
end
local.get $4
)
(func $start~anonymous|23 (; 53 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|23 (; 53 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3575,7 +3575,7 @@
i32.ge_s
br_if $break|0
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $6
local.get $3
local.tee $2
@ -3603,14 +3603,14 @@
end
local.get $5
)
(func $start~anonymous|24 (; 55 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|24 (; 55 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
global.get $std/array/i
local.get $0
i32.add
global.set $std/array/i
local.get $0
)
(func $start~anonymous|25 (; 56 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|25 (; 56 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3620,7 +3620,7 @@
global.set $std/array/i
local.get $0
)
(func $start~anonymous|26 (; 57 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|26 (; 57 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.const 2
i32.ge_s
@ -3659,7 +3659,7 @@
i32.load offset=8
local.set $2
i32.const 3
global.set $~argc
global.set $~lib/argc
local.get $2
local.get $3
local.get $0
@ -3680,7 +3680,7 @@
end
local.get $4
)
(func $start~anonymous|27 (; 59 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|27 (; 59 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
i32.const 100
call $~lib/array/Array<i32>#push
@ -3693,7 +3693,7 @@
i32.const 2
i32.ge_s
)
(func $start~anonymous|28 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|28 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
global.get $std/array/i
local.get $0
i32.add
@ -3702,7 +3702,7 @@
i32.const 2
i32.ge_s
)
(func $start~anonymous|29 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $start:std/array~anonymous|29 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $2
call $~lib/array/Array<i32>#pop
drop
@ -3714,7 +3714,7 @@
i32.const 2
i32.ge_s
)
(func $start~anonymous|30 (; 62 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $start:std/array~anonymous|30 (; 62 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
local.get $0
local.get $1
i32.add
@ -3744,7 +3744,7 @@
i32.ge_s
br_if $break|0
i32.const 4
global.set $~argc
global.set $~lib/argc
local.get $3
local.get $0
i32.load
@ -3767,7 +3767,7 @@
end
local.get $3
)
(func $start~anonymous|32 (; 64 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $start:std/array~anonymous|32 (; 64 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
local.get $0
local.get $1
i32.const 2
@ -3775,7 +3775,7 @@
local.get $0
select
)
(func $start~anonymous|33 (; 65 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $start:std/array~anonymous|33 (; 65 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
local.get $0
local.get $1
i32.const 100
@ -3783,7 +3783,7 @@
local.get $0
select
)
(func $start~anonymous|34 (; 66 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $start:std/array~anonymous|34 (; 66 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
local.get $3
i32.const 1
call $~lib/array/Array<i32>#push
@ -3792,7 +3792,7 @@
local.get $1
i32.add
)
(func $start~anonymous|36 (; 67 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $start:std/array~anonymous|36 (; 67 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
local.get $3
call $~lib/array/Array<i32>#pop
drop
@ -3814,7 +3814,7 @@
i32.lt_s
br_if $break|0
i32.const 4
global.set $~argc
global.set $~lib/argc
local.get $2
local.get $0
i32.load
@ -3876,7 +3876,7 @@
if
i32.const 0
i32.const 2896
i32.const 972
i32.const 968
i32.const 4
call $~lib/env/abort
unreachable
@ -3971,7 +3971,7 @@
f32.load offset=8
local.set $6
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $6
local.get $2
@ -4092,7 +4092,7 @@
f32.load offset=8
local.set $5
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $6
local.get $5
local.get $2
@ -4209,7 +4209,7 @@
f32.load offset=8
local.set $6
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $6
local.get $2
@ -4314,7 +4314,7 @@
f32.load offset=8
local.set $5
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $4
local.get $5
local.get $1
@ -4544,7 +4544,7 @@
f64.load offset=8
local.set $6
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $6
local.get $2
@ -4665,7 +4665,7 @@
f64.load offset=8
local.set $5
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $6
local.get $5
local.get $2
@ -4782,7 +4782,7 @@
f64.load offset=8
local.set $6
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $6
local.get $2
@ -4887,7 +4887,7 @@
f64.load offset=8
local.set $5
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $4
local.get $5
local.get $1
@ -5117,7 +5117,7 @@
i32.load offset=8
local.set $6
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $6
local.get $2
@ -5238,7 +5238,7 @@
i32.load offset=8
local.set $3
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $5
local.get $3
local.get $2
@ -5355,7 +5355,7 @@
i32.load offset=8
local.set $3
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $6
local.get $3
local.get $2
@ -5458,7 +5458,7 @@
i32.load offset=8
local.set $4
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $3
local.get $4
local.get $1
@ -5552,7 +5552,7 @@
if
i32.const 0
i32.const 2896
i32.const 981
i32.const 977
i32.const 24
call $~lib/env/abort
unreachable
@ -5637,7 +5637,7 @@
i32.lt_s
if
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $2
i32.const 1
i32.sub
@ -5717,7 +5717,7 @@
i32.const 48
call $std/array/assertSorted<i32>
)
(func $start~anonymous|50 (; 92 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start:std/array~anonymous|50 (; 92 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.sub
@ -5775,7 +5775,7 @@
end
local.get $1
)
(func $start~anonymous|53 (; 94 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start:std/array~anonymous|53 (; 94 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
local.get $0
i32.load
@ -5845,7 +5845,7 @@
i32.load offset=8
local.set $4
i32.const 2
global.set $~argc
global.set $~lib/argc
local.get $2
local.get $4
local.get $1
@ -5926,7 +5926,7 @@
end
local.get $0
)
(func $start~anonymous|54 (; 98 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $start:std/array~anonymous|54 (; 98 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load
local.get $1
@ -6038,7 +6038,7 @@
block $1of1
block $0of1
block $outOfRange
global.get $~argc
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of1 $1of1 $outOfRange
@ -10043,7 +10043,7 @@
end
local.get $1
)
(func $start (; 147 ;) (type $_)
(func $start:std/array (; 147 ;) (type $_)
(local $0 i32)
(local $1 i32)
i32.const 8432
@ -10102,7 +10102,7 @@
unreachable
end
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/arr8
i32.const 0
i32.const 0
@ -10139,7 +10139,7 @@
unreachable
end
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/arr8
i32.const 2
i32.const -2
@ -10195,7 +10195,7 @@
unreachable
end
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/arr32
i32.const 0
i32.const 0
@ -10234,7 +10234,7 @@
unreachable
end
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/arr32
i32.const 2
i32.const -2
@ -11048,7 +11048,7 @@
i32.const 664
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const 0
i32.const 3
@ -11068,7 +11068,7 @@
i32.const 744
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const 1
i32.const 3
@ -11088,7 +11088,7 @@
i32.const 824
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const 1
i32.const 2
@ -11108,7 +11108,7 @@
i32.const 904
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const 2
i32.const 2
@ -11185,7 +11185,7 @@
i32.const 1224
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const 0
i32.const -2
@ -11262,7 +11262,7 @@
i32.const 1544
global.set $std/array/cwArr
i32.const 2
global.set $~argc
global.set $~lib/argc
global.get $std/array/cwArr
i32.const -4
i32.const -3
@ -12382,7 +12382,7 @@
unreachable
end
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/sarr
i32.const 0
call $~lib/array/Array<i32>#splice|trampoline
@ -12414,7 +12414,7 @@
i32.const 1720
global.set $std/array/sarr
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/sarr
i32.const 2
call $~lib/array/Array<i32>#splice|trampoline
@ -12508,7 +12508,7 @@
i32.const 2032
global.set $std/array/sarr
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/sarr
i32.const -1
call $~lib/array/Array<i32>#splice|trampoline
@ -12540,7 +12540,7 @@
i32.const 2136
global.set $std/array/sarr
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/sarr
i32.const -2
call $~lib/array/Array<i32>#splice|trampoline
@ -13901,7 +13901,7 @@
i64.reinterpret_f64
call $~lib/math/NativeMath.seedRandom
i32.const 0
global.set $~argc
global.set $~lib/argc
global.get $std/array/f32ArrayTyped
local.set $0
i32.const 0
@ -13909,7 +13909,7 @@
block $1of1
block $0of1
block $outOfRange
global.get $~argc
global.get $~lib/argc
br_table $0of1 $1of1 $outOfRange
end
unreachable
@ -13933,7 +13933,7 @@
unreachable
end
i32.const 0
global.set $~argc
global.set $~lib/argc
global.get $std/array/f64ArrayTyped
local.set $0
i32.const 0
@ -13941,7 +13941,7 @@
block $1of155
block $0of156
block $outOfRange57
global.get $~argc
global.get $~lib/argc
br_table $0of156 $1of155 $outOfRange57
end
unreachable
@ -13965,7 +13965,7 @@
unreachable
end
i32.const 0
global.set $~argc
global.set $~lib/argc
global.get $std/array/i32ArrayTyped
local.set $0
i32.const 0
@ -13973,7 +13973,7 @@
block $1of158
block $0of159
block $outOfRange60
global.get $~argc
global.get $~lib/argc
br_table $0of159 $1of158 $outOfRange60
end
unreachable
@ -13999,7 +13999,7 @@
unreachable
end
i32.const 0
global.set $~argc
global.set $~lib/argc
global.get $std/array/u32ArrayTyped
local.set $0
i32.const 0
@ -14007,7 +14007,7 @@
block $1of161
block $0of162
block $outOfRange63
global.get $~argc
global.get $~lib/argc
br_table $0of162 $1of161 $outOfRange63
end
unreachable
@ -14185,7 +14185,7 @@
i32.const 54
call $std/array/assertSorted<Array<i32>>
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/randomStringsActual
call $std/array/assertSorted<String>|trampoline
global.get $std/array/randomStringsActual
@ -14203,7 +14203,7 @@
call $std/array/createRandomStringArray
global.set $std/array/randomStrings400
i32.const 1
global.set $~argc
global.set $~lib/argc
global.get $std/array/randomStrings400
call $std/array/assertSorted<String>|trampoline
call $~lib/array/Array<bool>#join
@ -14498,7 +14498,10 @@
unreachable
end
)
(func $null (; 148 ;) (type $_)
(func $start (; 148 ;) (type $_)
call $start:std/array
)
(func $null (; 149 ;) (type $_)
nop
)
)