I think it's worth separating web components and shadow dom from asm.js. The former are trying to improve the browser and the later are taking browser open philosophy everywhere. Browsers have full support for WebAssembly and keep working on optimizations. It's also taking off outside the browser too (WASI, Cloudflare, etc). If WebAssembly succeeds it's precisely because innovations in the browser did not, and we had to break it open.