| (module | |
| (func $zed (param i32) | |
| (call $zed (local.get 0)) | |
| ) | |
| (func $foo1 (export "foo1") (param $x i32) | |
| (block $a | |
| (block $b | |
| (block $c | |
| (block $d | |
| (block $e | |
| (br_table $a $b $c $d $e (local.get $x)) | |
| ) | |
| (call $zed (i32.const -1)) | |
| (call $zed (i32.const -2)) | |
| ;; implicit fallthrough - can be done in the switch too | |
| ) | |
| (call $zed (i32.const -3)) | |
| (call $zed (i32.const -4)) | |
| (br $c) ;; branch which is identical to a fallthrough | |
| ) | |
| (call $zed (i32.const -5)) | |
| (call $zed (i32.const -6)) | |
| (br $a) ;; skip some blocks - can't do this in a switch! | |
| ) | |
| (call $zed (i32.const -7)) | |
| (call $zed (i32.const -8)) | |
| (br $a) | |
| ) | |
| (call $zed (i32.const -9)) | |
| (call $zed (i32.const -10)) | |
| ) | |
| (func $foo2 (export "foo2") (param $x i32) | |
| (block $a | |
| (block $b | |
| (block $c | |
| (block $d | |
| (block $e | |
| (br_table $a $b $c $d $e (local.get $x)) | |
| ) | |
| (call $zed (i32.const -1)) | |
| (call $zed (i32.const -2)) | |
| (br $c) ;; skip some blocks - can't do this in a switch! | |
| ) | |
| (call $zed (i32.const -3)) | |
| (call $zed (i32.const -4)) | |
| (br $c) ;; branch which is identical to a fallthrough | |
| ) | |
| (call $zed (i32.const -5)) | |
| (call $zed (i32.const -6)) | |
| (br $a) ;; skip some blocks - can't do this in a switch! | |
| ) | |
| (call $zed (i32.const -7)) | |
| (call $zed (i32.const -8)) | |
| (br $a) | |
| ) | |
| (call $zed (i32.const -9)) | |
| (call $zed (i32.const -10)) | |
| ) | |
| (func $foo3 (export "foo3") (param $x i32) | |
| (block $a | |
| (block $b | |
| (block $c | |
| (block $d | |
| (block $e | |
| (br_table $a $b $c $d $e (local.get $x)) | |
| ) | |
| (br_if $c (local.get $x)) | |
| (call $zed (i32.const -1)) | |
| (call $zed (i32.const -2)) | |
| ) | |
| (call $zed (i32.const -3)) | |
| (call $zed (i32.const -4)) | |
| (br $c) ;; branch which is identical to a fallthrough | |
| ) | |
| (call $zed (i32.const -5)) | |
| (call $zed (i32.const -6)) | |
| (br $a) ;; skip some blocks - can't do this in a switch! | |
| ) | |
| (call $zed (i32.const -7)) | |
| (call $zed (i32.const -8)) | |
| (br $a) | |
| ) | |
| (call $zed (i32.const -9)) | |
| (call $zed (i32.const -10)) | |
| ) | |
| (func $foo4 (export "foo4") (param $x i32) | |
| (block $a | |
| (block $b | |
| (block $c | |
| (block $d | |
| (br_if $c (local.get $x)) | |
| (block $e | |
| (br_table $a $b $c $d $e (local.get $x)) | |
| ) | |
| (br_if $c (local.get $x)) | |
| (call $zed (i32.const -1)) | |
| (call $zed (i32.const -2)) | |
| ) | |
| (call $zed (i32.const -3)) | |
| (call $zed (i32.const -4)) | |
| (br $c) ;; branch which is identical to a fallthrough | |
| ) | |
| (call $zed (i32.const -5)) | |
| (call $zed (i32.const -6)) | |
| (br $a) ;; skip some blocks - can't do this in a switch! | |
| ) | |
| (call $zed (i32.const -7)) | |
| (call $zed (i32.const -8)) | |
| (br $a) | |
| ) | |
| (call $zed (i32.const -9)) | |
| (call $zed (i32.const -10)) | |
| ) | |
| ) |