(module (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i64_=>_none (func (param i64))) (type $i32_i64_=>_none (func (param i32 i64))) (event $e-i32 (attr 0) (param i32)) (event $e-i64 (attr 0) (param i64)) (event $e-i32-i64 (attr 0) (param i32 i64)) (event $e-empty (attr 0) (param)) (func $foo (nop) ) (func $bar (nop) ) (func $eh_test (local $x (i32 i64)) (try $try (do (throw $e-i32 (i32.const 0) ) ) (catch $e-i32 (drop (pop i32) ) ) ) (try $try0 (do (throw $e-i32-i64 (i32.const 0) (i64.const 0) ) ) (catch $e-i32-i64 (local.set $x (pop i32 i64) ) (drop (tuple.extract 0 (local.get $x) ) ) ) ) (block $l11 (try $l1 (do (br $l11) ) (catch $e-i32 (drop (pop i32) ) (br $l11) ) ) ) (try $try2 (do (nop) ) (catch $e-i32 (drop (pop i32) ) ) ) (try $try3 (do (call $foo) (call $bar) ) (catch $e-i32 (drop (pop i32) ) (call $foo) (call $bar) ) ) (try $try4 (do (throw $e-i32 (i32.const 0) ) ) (catch $e-i32 (drop (pop i32) ) ) (catch $e-i64 (drop (pop i64) ) ) ) (try $try5 (do (throw $e-i32 (i32.const 0) ) ) (catch_all (nop) ) ) (try $try6 (do (throw $e-i32 (i32.const 0) ) ) (catch $e-i32 (drop (pop i32) ) ) (catch $e-i64 (drop (pop i64) ) ) (catch_all (call $foo) (call $bar) ) ) (try $try7 (do (try $try8 (do (throw $e-i32 (i32.const 0) ) ) (catch $e-i32 (drop (pop i32) ) ) (catch_all (nop) ) ) ) (catch $e-i32 (drop (pop i32) ) ) (catch_all (try $try9 (do (throw $e-i32 (i32.const 0) ) ) (catch $e-i32 (drop (pop i32) ) ) (catch_all (nop) ) ) ) ) ) (func $delegate-test (try $l0 (do (try $try (do (call $foo) ) (delegate $l0) ) (try $try10 (do (call $foo) ) (delegate $l0) ) ) (catch_all (nop) ) ) (block $l014 (try $l011 (do (try $try12 (do (br_if $l014 (i32.const 1) ) ) (delegate $l011) ) (try $try13 (do (br_if $l014 (i32.const 1) ) ) (delegate $l011) ) ) (catch_all (nop) ) ) ) (try $l015 (do (try $try16 (do (call $foo) ) (delegate $l015) ) ) (delegate 0) ) (try $try17 (do (nop) ) (catch $e-empty (nop) ) ) ) (func $rethrow-test (try $l0 (do (call $foo) ) (catch $e-i32 (drop (pop i32) ) (rethrow $l0) ) (catch_all (rethrow $l0) ) ) (block $l019 (try $l018 (do (call $foo) ) (catch $e-i32 (drop (pop i32) ) (rethrow $l018) ) (catch_all (br $l019) ) ) ) (try $l020 (do (call $foo) ) (catch_all (try $try (do (call $foo) ) (catch $e-i32 (drop (pop i32) ) (rethrow $l020) ) (catch_all (rethrow $l020) ) ) ) ) (try $l021 (do (call $foo) ) (catch_all (try $try22 (do (call $foo) ) (catch $e-i32 (drop (pop i32) ) (block $b0 (rethrow $l021) ) ) (catch_all (block $b1 (rethrow $l021) ) ) ) ) ) (try $l023 (do (call $foo) ) (catch_all (try $try24 (do (rethrow $l023) ) (catch_all (nop) ) ) ) ) (try $l025 (do (call $foo) ) (catch_all (try $try26 (do (rethrow $l025) ) (catch_all (nop) ) ) ) ) ) )