Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Support polyfilling multi-memory (#125)
* Support polyfilling multi-memory Currently JS does not generally support the WebAssembly multi-memory proposal. Wasmtime will, however, generate adapter modules which use multi-memory to communicate between components. This means that composed components are typically not compatible with the transpile process as they produce a core module that doesn't actually run in any JS runtime. This commit fixes this issue by adding polyfill support for multi-memory. Whenever an adapter is produced that uses multi-memory jco will now rewrite the module such that any references to memory that isn't at index 0 to be indirected through functions. These imported functions then operate on the specified memory on behalf of the wasm itself. This is a horribly slow process because all memory reads/writes become function calls, but given that the baseline is otherwise "does not work" it's hopefully a bit better than before. The end goal here is to work up towards strings between components, but for now this just gets everything else working with multi-memory such as transferring lists. * Fill out comments --------- Co-authored-by: Guy Bedford <[email protected]>
- Loading branch information