Resizable buffers integration in Wasm/JS API
Opened this issue · 1 comments
Description
This feature lets the Wasm/JS API vend resizable buffers in WebAssembly.Memory, making the Wasm API more ergonomic for JS integration.
Resizable buffers is an existing JS feature that added the ability to resize ArrayBuffer instances and to grow SharedArrayBuffer instances.
Specification
The Wasm/JS API is already merged into the Wasm spec (PR). The JS feature is already Stage 4 (merged into the standard)
Additional Signals
Emscripten would benefit from using this feature, as WebAssembly buffers has always been able to resize/grow. Since Wasm memories are exposed as ArrayBuffers, which by default cannot resize nor grow, growing the memories has to be expressed in unergonomic ways like detaching and requires manual polling.
As a user of Emscripten, this is especially useful when using its support for multithreading and memory growth, since we have to constantly check if the buffer has been replaced before using it.