Well put. One nit: I think you mean backwards compatibility, though asm.js can also be expected to work without modification in future browsers and future versions of javascript.
Re:The Elusive Universal Web Bytecode
by TazeTSchnitzel on Thursday March 26, 2015 @08:19PM
(#9274040)
Yeah, I originally put backwards-compatibility, but I wasn't sure if forwards-compatibility was the right word for allowing old software to use new code.
LLVM has a single implementation, is very complex, isn't even remotely portable, and is primarily suited to C and C++, or similar languages.
We also already have a very performant transformation format for LLVM IR into JS: asm.js. And asm.js fixes most of LLVM IR's problems:
* It's very simple
* It's portable across architectures
* It doesn't have undefined behaviour
* It has multiple implementations
* It has forwards-compatibility (existing browsers, regardless of explicit support, can run asm.js code)
* It is standardised