I've outlined this progression before, which seems obvious to me, but I haven't seen anyone else discuss it.
1. Get asm.js into every browser.
2 or 3. Observe that asm.js is very verbose, define a simple
binary bytecode for it.
3 or 2. Figure out how to get asm.js decent DOM access.
The last two can come in either order.And the end result is the language-independent bytecode that so many people have asked for over the years. We just won't get there in one leap, it'll come in phases. We in fact won't be using Javascript for everything in 20 years [1], but those of you still around will be explaining to the young bucks why certain stupid quirks of their web browser's bytecode execution environment can be traced back to "Javascript", even when they're not using the increasingly-deprecated Javascript programming language.
[1]: https://www.destroyallsoftware.com/talks/the-birth-and-death...