mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-12 14:31:28 +00:00
Add CI
This commit is contained in:
35
tests/compiler/switch.ts
Normal file
35
tests/compiler/switch.ts
Normal file
@ -0,0 +1,35 @@
|
||||
export function doSwitch(n: i32): i32 {
|
||||
switch (n) {
|
||||
case 1:
|
||||
return 1;
|
||||
case 0:
|
||||
default:
|
||||
return 0;
|
||||
case 2:
|
||||
case 3:
|
||||
return 23;
|
||||
}
|
||||
}
|
||||
|
||||
export function doSwitchDefaultFirst(n: i32): i32 {
|
||||
switch (n) {
|
||||
default:
|
||||
return 0;
|
||||
case 1:
|
||||
return 1;
|
||||
case 2:
|
||||
case 3:
|
||||
return 23;
|
||||
}
|
||||
}
|
||||
|
||||
export function doSwitchDefaultOmitted(n: i32): i32 {
|
||||
switch (n) {
|
||||
case 1:
|
||||
return 1;
|
||||
case 2:
|
||||
case 3:
|
||||
return 23;
|
||||
}
|
||||
return 0;
|
||||
}
|
170
tests/compiler/switch.wast
Normal file
170
tests/compiler/switch.wast
Normal file
@ -0,0 +1,170 @@
|
||||
(module
|
||||
(type $ii (func (param i32) (result i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 4) "\08\00\00\00")
|
||||
(export "memory" (memory $0))
|
||||
(func $switch/doSwitch (; 0 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(block $break$1.1
|
||||
(block $case4$1.1
|
||||
(block $case3$1.1
|
||||
(block $case2$1.1
|
||||
(block $case1$1.1
|
||||
(block $case0$1.1
|
||||
(set_local $1
|
||||
(get_local $0)
|
||||
)
|
||||
(br_if $case0$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(br_if $case1$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 0)
|
||||
)
|
||||
)
|
||||
(br_if $case3$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(br_if $case4$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
(br $case2$1.1)
|
||||
)
|
||||
(return
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 23)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $switch/doSwitchDefaultFirst (; 1 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(block $break$1.1
|
||||
(block $case3$1.1
|
||||
(block $case2$1.1
|
||||
(block $case1$1.1
|
||||
(block $case0$1.1
|
||||
(set_local $1
|
||||
(get_local $0)
|
||||
)
|
||||
(br_if $case1$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(br_if $case2$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(br_if $case3$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
(br $case0$1.1)
|
||||
)
|
||||
(return
|
||||
(i32.const 0)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 23)
|
||||
)
|
||||
)
|
||||
)
|
||||
(func $switch/doSwitchDefaultOmitted (; 2 ;) (type $ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(block $break$1.1
|
||||
(block $case2$1.1
|
||||
(block $case1$1.1
|
||||
(block $case0$1.1
|
||||
(set_local $1
|
||||
(get_local $0)
|
||||
)
|
||||
(br_if $case0$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
(br_if $case1$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 2)
|
||||
)
|
||||
)
|
||||
(br_if $case2$1.1
|
||||
(i32.eq
|
||||
(get_local $1)
|
||||
(i32.const 3)
|
||||
)
|
||||
)
|
||||
(br $break$1.1)
|
||||
)
|
||||
(return
|
||||
(i32.const 1)
|
||||
)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 23)
|
||||
)
|
||||
)
|
||||
(return
|
||||
(i32.const 0)
|
||||
)
|
||||
)
|
||||
)
|
||||
(;
|
||||
[program.elements]
|
||||
clz
|
||||
ctz
|
||||
popcnt
|
||||
rotl
|
||||
rotr
|
||||
abs
|
||||
ceil
|
||||
copysign
|
||||
floor
|
||||
max
|
||||
min
|
||||
nearest
|
||||
sqrt
|
||||
trunc
|
||||
isNaN
|
||||
isFinite
|
||||
switch/doSwitch
|
||||
switch/doSwitchDefaultFirst
|
||||
switch/doSwitchDefaultOmitted
|
||||
[program.exports]
|
||||
switch/doSwitch
|
||||
switch/doSwitchDefaultFirst
|
||||
switch/doSwitchDefaultOmitted
|
||||
;)
|
Reference in New Issue
Block a user