When comparing js and wasm, one thing people rarely mention is that with js, you get built-in functions/runtime (without crossing the boundary and then getting language mismatch).
When "reimplementing" that functionality in wasm, it will add a good amount to binary size. Just a hashmap will add a decent bit.
Not to say there aren't uses, but js comes with some advantages.