Just a note: shared memory is coming and I think Firefox Nightly has an experimental version that you can enable in about:config.
For interop with JavaScript, there's a usability difference between a JavaScript object and a blob of bytes, although that could be overcome with an object "mirror" that proxies operations appropriately.
Our approach was to leverage the existing GC and language features that browsers already have.