Skip to content
This repository was archived by the owner on Apr 25, 2025. It is now read-only.

Commit 9e9756e

Browse files
committed
Split off into try-br-interactions
1 parent 625358d commit 9e9756e

File tree

2 files changed

+65
-22
lines changed

2 files changed

+65
-22
lines changed

test/core/try-br-interactions.wast

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
;; Test try-br interactions.
2+
3+
(module
4+
(tag $e0)
5+
6+
(func $throw (throw $e0))
7+
8+
(func (export "break-try-catch")
9+
(try (do (br 0)) (catch $e0))
10+
)
11+
12+
(func (export "break-try-catch_all")
13+
(try (do (br 0)) (catch_all))
14+
)
15+
16+
(func (export "break-try-delegate")
17+
(try (do (br 0)) (delegate 0))
18+
)
19+
20+
(func (export "break-and-call-throw") (result i32)
21+
(try $outer (result i32)
22+
(do
23+
(try (result i32)
24+
(do
25+
(block $a
26+
(try (do (br $a)) (delegate $outer))
27+
)
28+
(call $throw)
29+
(i32.const 0)
30+
)
31+
(catch $e0 (i32.const 1))
32+
)
33+
)
34+
(catch $e0 (i32.const 2))
35+
)
36+
)
37+
38+
(func (export "break-and-throw") (result i32)
39+
(try $outer (result i32)
40+
(do
41+
(try (result i32)
42+
(do
43+
(block $a
44+
(try (do (br $a)) (delegate $outer))
45+
)
46+
(throw $e0)
47+
(i32.const 0)
48+
)
49+
(catch $e0 (i32.const 1))
50+
)
51+
)
52+
(catch $e0 (i32.const 2))
53+
)
54+
)
55+
)
56+
57+
(assert_return (invoke "break-try-catch"))
58+
59+
(assert_return (invoke "break-try-catch_all"))
60+
61+
(assert_return (invoke "break-try-delegate"))
62+
63+
(assert_return (invoke "break-and-call-throw") (i32.const 1))
64+
65+
(assert_return (invoke "break-and-throw") (i32.const 1))

test/core/try_delegate.wast

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -115,26 +115,6 @@
115115
(delegate $l3))))
116116
unreachable)
117117
(catch_all (i32.const 1))))
118-
119-
(func $throw (throw $e0))
120-
121-
(func (export "break-throw") (result i32)
122-
(try $outer (result i32)
123-
(do
124-
(try (result i32)
125-
(do
126-
(block $a
127-
(try (do (br $a)) (delegate $outer))
128-
)
129-
(call $throw)
130-
(i32.const 0)
131-
)
132-
(catch $e0 (i32.const 1))
133-
)
134-
)
135-
(catch $e0 (i32.const 2))
136-
)
137-
)
138118
)
139119

140120
(assert_return (invoke "delegate-no-throw") (i32.const 1))
@@ -160,8 +140,6 @@
160140

161141
(assert_return (invoke "delegate-correct-targets") (i32.const 1))
162142

163-
(assert_return (invoke "break-throw") (i32.const 1))
164-
165143
(assert_malformed
166144
(module quote "(module (func (delegate 0)))")
167145
"unexpected token"

0 commit comments

Comments
 (0)