| (module |
| (func $trivial |
| (nop) |
| ) |
| (func $trivial2 |
| (call $trivial) |
| (call $trivial) |
| ) |
| (func $return-void |
| (return) |
| ) |
| (func $return-val (result i32) |
| (return (i32.const 1)) |
| ) |
| (func $ifs (param $x i32) (result i32) |
| (if |
| (local.get $x) |
| (then |
| (if |
| (local.get $x) |
| (then |
| (return (i32.const 2)) |
| ) |
| (else |
| (return (i32.const 3)) |
| ) |
| ) |
| ) |
| ) |
| (if |
| (local.get $x) |
| (then |
| (return (i32.const 4)) |
| ) |
| ) |
| (return (i32.const 5)) |
| ) |
| (func $loops (param $x i32) |
| (if (local.get $x) |
| (then |
| (loop $top |
| (call $trivial) |
| (br $top) |
| ) |
| ) |
| ) |
| (loop $top2 |
| (call $trivial) |
| (br_if $top2 (local.get $x)) |
| ) |
| (loop $top3 |
| (call $trivial) |
| (if (local.get $x) (then (br $top3))) |
| ) |
| ) |
| (func $br-out (param $x i32) |
| (block $out |
| (call $br-out (i32.const 5)) |
| (br $out) |
| ) |
| ) |
| (func $unreachable (param $x i32) |
| (if (local.get $x) |
| (then |
| (if (local.get $x) |
| (then |
| (block |
| (call $unreachable (i32.const 1)) |
| (unreachable) |
| (call $unreachable (i32.const 2)) |
| ) |
| ) |
| (else |
| (block |
| (call $unreachable (i32.const 3)) |
| (return) |
| (call $unreachable (i32.const 4)) |
| ) |
| ) |
| ) |
| ) |
| ) |
| (block $out |
| (call $unreachable (i32.const 5)) |
| (br $out) |
| (call $unreachable (i32.const 6)) |
| ) |
| ) |
| (func $empty-blocks (param $x i32) |
| (block) |
| (block) |
| ) |
| (func $before-and-after (param $x i32) |
| (call $before-and-after (i32.const 1)) |
| (block |
| (call $before-and-after (i32.const 2)) |
| ) |
| (call $before-and-after (i32.const 3)) |
| (block $out |
| (call $before-and-after (i32.const 4)) |
| (br_if $out (local.get $x)) |
| (call $before-and-after (i32.const 5)) |
| ) |
| (call $before-and-after (i32.const 6)) |
| (loop) |
| (call $before-and-after (i32.const 7)) |
| (loop $top) |
| (call $before-and-after (i32.const 8)) |
| (loop $top2 |
| (call $before-and-after (i32.const 9)) |
| (br_if $top2 (local.get $x)) |
| (call $before-and-after (i32.const 10)) |
| ) |
| (call $before-and-after (i32.const 11)) |
| (if (local.get $x) |
| (then |
| (call $before-and-after (i32.const 12)) |
| ) |
| ) |
| (call $before-and-after (i32.const 13)) |
| (if (local.get $x) |
| (then |
| (call $before-and-after (i32.const 14)) |
| ) |
| (else |
| (call $before-and-after (i32.const 15)) |
| ) |
| ) |
| (if (local.get $x) |
| (then |
| (block |
| (call $before-and-after (i32.const 16)) |
| ) |
| ) |
| ) |
| (call $before-and-after (i32.const 17)) |
| (block |
| (call $before-and-after (i32.const 18)) |
| (block |
| (call $before-and-after (i32.const 19)) |
| ) |
| (call $before-and-after (i32.const 20)) |
| ) |
| (call $before-and-after (i32.const 21)) |
| (block |
| (block |
| (call $before-and-after (i32.const 22)) |
| ) |
| ) |
| (call $before-and-after (i32.const 23)) |
| (block $no1 |
| (block $no2 |
| (call $before-and-after (i32.const 24)) |
| ) |
| ) |
| (call $before-and-after (i32.const 25)) |
| ) |
| (func $switch (param $x i32) |
| (block $out |
| (block $a |
| (br_table $a $a (local.get $x)) |
| ) |
| (call $switch (i32.const 1)) |
| (block $b |
| (block $c |
| (br_table $b $b $b $c (local.get $x)) |
| ) |
| (call $switch (i32.const 2)) |
| ) |
| (call $switch (i32.const 3)) |
| ) |
| ) |
| (func $no-return |
| (if (i32.const 1) |
| (then |
| (drop (i32.const 2)) |
| ) |
| (else |
| (drop (i32.const 3)) |
| ) |
| ) |
| ) |
| (func $if-br-wat (param $x i32) |
| (call $if-br-wat |
| (i32.const 0) |
| ) |
| (block $label$2 |
| (if |
| (local.get $x) |
| (then |
| (call $if-br-wat |
| (i32.const 1) |
| ) |
| ) |
| (else |
| (if |
| (local.get $x) |
| (then |
| (br $label$2) ;; waka |
| ) |
| ) |
| ) |
| ) |
| (call $if-br-wat |
| (i32.const 2) |
| ) |
| ) |
| (call $if-br-wat |
| (i32.const 3) |
| ) |
| ) |
| ) |
| |