This repository was archived by the owner on Apr 25, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +65
-22
lines changed Expand file tree Collapse file tree 2 files changed +65
-22
lines changed Original file line number Diff line number Diff line change
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 ))
Original file line number Diff line number Diff line change 115
115
(delegate $l3 ))))
116
116
unreachable )
117
117
(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
- )
138
118
)
139
119
140
120
(assert_return (invoke " delegate-no-throw" ) (i32.const 1 ))
160
140
161
141
(assert_return (invoke " delegate-correct-targets" ) (i32.const 1 ))
162
142
163
- (assert_return (invoke " break-throw" ) (i32.const 1 ))
164
-
165
143
(assert_malformed
166
144
(module quote " (module (func (delegate 0)))" )
167
145
" unexpected token"
You can’t perform that action at this time.
0 commit comments