diff options
Diffstat (limited to 'test/passes/code-pushing_all-features.txt')
-rw-r--r-- | test/passes/code-pushing_all-features.txt | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/test/passes/code-pushing_all-features.txt b/test/passes/code-pushing_all-features.txt new file mode 100644 index 000000000..230a9006d --- /dev/null +++ b/test/passes/code-pushing_all-features.txt @@ -0,0 +1,97 @@ +(module + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (event $e (attr 0) (param i32)) + (func $cant-push-past-call (; 0 ;) + (local $x i32) + (block $out + (local.set $x + (i32.const 1) + ) + (call $cant-push-past-call) + (drop + (i32.const 1) + ) + (br_if $out + (i32.const 2) + ) + (drop + (local.get $x) + ) + ) + ) + (func $cant-push-past-throw (; 1 ;) + (local $x i32) + (block $out + (local.set $x + (i32.const 1) + ) + (throw $e + (i32.const 0) + ) + (drop + (i32.const 1) + ) + (br_if $out + (i32.const 2) + ) + (drop + (local.get $x) + ) + ) + ) + (func $can-push-past-throw-within-try (; 2 ;) + (local $x i32) + (block $out + (try + (throw $e + (i32.const 0) + ) + (catch + (drop + (exnref.pop) + ) + ) + ) + (drop + (i32.const 1) + ) + (br_if $out + (i32.const 2) + ) + (local.set $x + (i32.const 1) + ) + (drop + (local.get $x) + ) + ) + ) + (func $cant-push-past-rethrow-within-catch (; 3 ;) + (local $x i32) + (block $out + (local.set $x + (i32.const 1) + ) + (try + (throw $e + (i32.const 0) + ) + (catch + (rethrow + (exnref.pop) + ) + ) + ) + (drop + (i32.const 1) + ) + (br_if $out + (i32.const 2) + ) + (drop + (local.get $x) + ) + ) + ) +) |