You can use javascript as a single cross platform compile target. What's the difference?
WASM, and asm.js before it, roughly exist because Javascript is such a bad compile target.
WASM allows you to run some parts of the application a bit faster. ;)
WASM works with any language and can be much faster than javascript
Javascript comes with mandatory garbage collection. I suppose you could compile any language to an allocation-free semantic subset of Javascript, but it's probably going to be even less pretty than transpiling to Javascript already is.