summaryrefslogtreecommitdiff
path: root/test/passes/code-pushing_all-features.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/code-pushing_all-features.txt')
-rw-r--r--test/passes/code-pushing_all-features.txt97
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)
+ )
+ )
+ )
+)