This is needed to allow SpiderMonkey to provide function signature types to the wasm translator when it uses Cranelift as a backend without using the wasm translator to parse the entire module. There is perhaps a better long-term design here where we allow an embedding that already parses the Wasm module (such as SpiderMonkey) to provide information in a more principled way, this suffices for now. Patch is inspired by Ben's patch in https://bugzilla.mozilla.org/show_bug.cgi?id=1641504, but does not expose `wasmparser` types directly, instead using Cranelift types across the API boundary.
This crate performs the translation from a wasm module in binary format to the in-memory form of the Cranelift IR.
If you're looking for a complete WebAssembly implementation that uses this library, see Wasmtime.