V8 Release v9.6
v8.dev
v8.dev
This is a major step for WebAssembly which I've waited for a long time! Note that Chrome was the last major browser not supporting reference types, so soon we'll be able to use this on real websites: https://webassembly.org/roadmap/
The main contribution is that now arbitrary values can be passed between JS and Wasm modules. These will show up on the Wasm side as opaque `externref` types.
This allows (arbitrarily powerful) Wasm modules that only import JavaScript glue code instead of having to wrap their exports with JS functions. "Modules that import the functionality they need" is, IMO, a much saner model for creating an ecosystem of modules than "modules which are wrapped with functions specific to the functionality they need". I think this will lead to
* more transparent code (= closer correspondence between the code which is compiled to Wasm and the thing that actually runs in your browser)
* a standard interface between functions across the ecosystem => much more potential to just import and use Wasm modules written in other languages
* an easier way to ship only the minimal amount of JS glue code you need
Does this mean we now have direct DOM access from WASM and GC support?
(here's an example of such a shim for WebGPU in the Emscripten SDK: https://github.com/emscripten-core/emscripten/blob/main/src/...)
https://webassembly.org/roadmap/
So with Chrome's quick release cycles it's probably not too bad (not sure about the 'branded' mobile browsers on Android though).
Unfortunately I'm still keeping my worry alive. The reality is that we still can't move fully even to wasm, as ~6% of our players have incompatible browser and we have to support asm.js fallback.
My worry is that we end up with fallback cascade: - full featured wasm - wasm - asm.js
I'm aware that's the reality of technology under development - and most likely we will just find a solution for that (like secondary build (or link if it's just link time)).
It's just too bad we can't easy polyfill new features in old browsers for wasm.
Still love WASM <3
Well, if that's a pain, then 6% is small enough to drop/force to upgrade.
https://leaningtech.com/cheerpj
https://leaningtech.com/cheerpx-for-flash
Looking forward to it.
Edit: Of the JS engine which is now in C++; not sarcasm.
By the way, the upcoming ARM conference has sessions regarding MTE.
https://security.googleblog.com/2021/09/an-update-on-memory-...
> Even if we started writing new large components in Rust tomorrow, we’d be unlikely to eliminate a significant proportion of security vulnerabilities for many years. And can we make the language boundary clean enough that we can write parts of existing components in Rust? We don’t know yet. We’ve started to land limited, non-user-facing Rust experiments in the Chromium source code tree, but we’re not yet using it in production versions of Chrome - we remain in an experimental phase.
Not gonna happen.