Replace “WebAssembly VM” with “JVM” and you will see how it’s already available, and why it won’t catch on.
The advantage of wasm is that all the people running Chrome today already have it.
Webassembly solves a problem that existing low level bytecodes like LLVM IR do not intend to solve. LLVM IR is not stable across LLVM versions and usually is optimized for a specific architecture.
JVM bytecode is stable but high level. LLVM IR is unstable and low level. WebAssembly is stable and low level.
They all solve different problems.