This repository has been archived by the owner on Nov 3, 2021. It is now read-only.
[spec] Introduce multi-results and block parameters #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This does all changes to the spec necessary to support multi-results and block parameters:
typeuse
andparam
decls (which must not contain identifiers)Most of these changes are very simple. The main complication ironically is the mere representation of block sigs in the syntax and binary format, which necessarily becomes a bit ad-hoc because it has to support both the old and the new format. Moreover, interpreting a block type may now require a lookup in the type section, which is a minor structural complication in the respective rules.
Preview at https://webassembly.github.io/multi-value/
Plenty of tests and a respective patch for the interpreter are in PR #2.