File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -232,7 +232,9 @@ instancedecl ::= 0x00 t:<core:type> => t
232232 | 0x04 ed:<exportdecl> => ed
233233importdecl ::= na:<nameattributes> et:<externtype> => (import na et)
234234exportdecl ::= na:<nameattributes> et:<externtype> => (export na et)
235- externtype ::= 0x00 0x11 i:<core:typeidx> => (core module (type i))
235+ externtype ::= 0x10 t:<someexterntype> => (optional t)
236+ | t:<someexterntype> => t
237+ someexterntype ::= 0x00 0x11 i:<core:typeidx> => (core module (type i))
236238 | 0x01 i:<typeidx> => (func (type i))
237239 | 0x02 b:<valuebound> => (value b) 🪙
238240 | 0x03 b:<typebound> => (type b)
@@ -541,6 +543,7 @@ named once.
541543 subset of ` canonopt ` s.
542544* Add optional ` shared ` immediate to all canonical definitions (explicitly or
543545 via ` <canonopt> ` ) when shared-everything-threads (🧵②) is added.
546+ * Improve ` externtype ` opcodes for ` optional `
544547
545548
546549[ `core:byte` ] : https://webassembly.github.io/spec/core/binary/values.html#binary-byte
Original file line number Diff line number Diff line change @@ -618,7 +618,9 @@ instancedecl ::= core-prefix(<core:type>)
618618 | <exportdecl>
619619importdecl ::= (import <externnamelit> <attribute>* bind-id(<externtype>))
620620exportdecl ::= (export <externnamelit> <attribute>* bind-id(<externtype>))
621- externtype ::= (<sort> (type <u32>) )
621+ externtype ::= (optional <someexterntype>)
622+ | <someexterntype>
623+ someexterntype ::= (<sort> (type <u32>) )
622624 | core-prefix(<core:moduletype>)
623625 | <functype>
624626 | <componenttype>
You can’t perform that action at this time.
0 commit comments