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 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 ))
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"
You can’t perform that action at this time.
0 commit comments