Stop passing around &WasmFeatures
#2121
Merged
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 commit updates the validation phase of wasmparser to avoid passing around
&WasmFeatures
all over the place. Instead it's now stored within module/component state in addition to the validator itself to store a duplicate copy. This should be reasonable to do asWasmFeatures
is cheap to clone/copy.The main motivation for this is that it's a big pain to pass around these features. Existing code paths often start getting it as a new argument when new wasm proposals are implemented and it's quite a lot of threading around to do. There's not really much reason to avoid copies when everything is a single source of truth from the validator anyway and the features never change afterwards, so reduce the cognitive complexity by just storing copies in module/component states.