| (module |
| (func $zed (param i32) |
| (call $zed (local.get 0)) |
| ) |
| (func "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" (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" (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" (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)) |
| ) |
| ) |
| |