Spidermonkey will need to emit pre/post barriers for global.set/get to a reference type. #1176 and #1299 plan to add a template concept that could be used to implement this. Once that has been stabilized, we should be able to remove this code in favor of templates easily.
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.