@Andrew Hodgkinson
This is an early experiment by the LibreOffice people where I'm sure they haven't rewritten their huge codebase for optimal WebAssembly, but have lifted and shifted the existing code in, with adaptations here and there. Of course it's going to be slow, it's not supposed to be a new ready to go productivity tool. WebAssemby itself is still a work in progress. They are just experimenting.
Ridiculous expectations.
If I code something using rust, specifically for WebAssembly, keeping the bulk of the work inside the process without too much handing over to JS, then it's nothing like "grossly inefficient". It's by far the most efficient way to do it in a browser.The ratio of actual webassembly code to JS code is irrelevant, it's the amount that each of those is called into use that matters.
As as already been explained, WASM currently relies on JS for DOM interaction and has a clunky method to hand over in memory pigeon holes. When this is addressed that bottleneck will be reduced.