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

Commit f3c5987

Browse files
authored
Formal overview address latest review (#205)
This is not the suggestion given in that last review of #143: https://github.com/WebAssembly/exception-handling/pull/143/files#r759907998 but a potential fix of the issue raised there.
1 parent 547e810 commit f3c5987

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

proposals/exception-handling/Exceptions-formal-overview.md

+6-4
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,13 @@ C ⊢ try bt instr1* (catch x instr2*)* (catch_all instr3*)? end : [t1*]→[t2*]
8383
8484
C ⊢ bt : [t1*]→[t2*]
8585
C, labels [t2*] ⊢ instr* : [t1*]→[t2*]
86-
C.labels[l] = [t*]
86+
C.labels[l] = [t0*]
8787
-------------------------------------------
8888
C ⊢ try bt instr* delegate l : [t1*]→[t2*]
8989
```
9090

91+
Note that `try ... delegate 0` may appear without any explicitly surrounding block, in which case the label 0 refers to the label of the frame. Currently it is not allowed to refer to a label higher than the one of the frame.
92+
9193
## Execution (Reduction)
9294

9395
### Runtime Structure
@@ -208,10 +210,10 @@ S;C, labels [t2*] ⊢ instr1* : []→[t2*]
208210
-----------------------------------------------------------
209211
S;C, labels [t2*] ⊢ catch{a? instr2*}* instr1* end : []→[t2*]
210212
211-
S;C, labels [t*] ⊢ instr* : []→[t*]
212-
C.labels[l] = [t0*]
213+
S;C ⊢ instr* : []→[t*]
214+
C.labels[l+1] = [t0*]
213215
------------------------------------------------------
214-
S;C, labels [t*] ⊢ delegate{l} instr* end : []→[t*]
216+
S;C ⊢ delegate{l} instr* end : []→[t*]
215217
216218
S ⊢ tag a : tag [t0*]→[]
217219
(val:t0)*

0 commit comments

Comments
 (0)