Skip to content

Commit 25632dd

Browse files
authored
Add noexn type to overview (WebAssembly#298)
1 parent cecb8d6 commit 25632dd

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

proposals/exception-handling/Exceptions.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,18 @@ document](https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md).
331331

332332
The type `exnref` is represented by the type opcode `-0x17`.
333333

334+
When combined with the [GC proposal](https://github.com/WebAssembly/gc/blob/main/proposals/gc/MVP.md),
335+
there also is a value type `nullexnref` with opcode `-0x0c`.
336+
Furthermore, these opcodes also function as heap type,
337+
i.e., `exn` is a new heap type with opcode `-0x17`,
338+
and `noexn` is a new heap type with opcode `-0x0c`;
339+
`exnref` and `nullexnref` are shorthands for `(ref null exn)` and `(ref null noexn)`, respectively.
340+
341+
The heap type `noexn` is a subtype of `exn`.
342+
They are not in a subtype relation with any other type (except bottom),
343+
such that they form a new disjoint hierarchy of heap types.
344+
345+
334346
##### tag_type
335347

336348
We reserve a bit to denote the exception attribute:

0 commit comments

Comments
 (0)