It is amazing to see what is happening with wasm/wasi lately and that is all grew out of asm.js.
asm.js, like JSON, is a strict subset of the JavaScript grammar that turned out to be very useful in a certain way. Obviously, a text encoding like asm.js wasn't an efficient way to distribute a bytecode, but it proved enough to make wasm the obvious next step.
Everyone keeps forgetting NaCL and PNaCL predates it, and asm.js only exists because Mozilla didn't want to adopt it.