We intend to enable WebAssembly exception-handling 'V2' by default in Firefox 131.
Summary: The WebAssembly exception-handling proposal allows WebAssembly code to throw
and catch exceptions. This allows native programs that use exceptions to be
ported to the web without an expensive polyfill.
We shipped the phase 3 version of this proposal in Firefox 100 under web-compat
pressure (see this intent-to-ship [1]). Since this time, the proposal was
revised due to some significant issues discovered. There is now a new
instruction set for throw/catch, and a legacy instruction set that was part
of the phase 3 proposal. The proposal has now moved to phase 4 in the
WebAssembly CG and been adopted as part of the standard. We intend to ship the
new parts of the proposal, while keeping the legacy instruction set around for
web compatibility. We will monitor to see if we can someday deprecate and
remove the legacy instructions.
Bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1695715Bug to turn on by default:
https://bugzilla.mozilla.org/show_bug.cgi?id=1908375Specification:
https://webassembly.github.io/exception-handling/Standards Body: WebAssembly Community Group
Platform coverage: All platforms
Preference: javascript.options.wasm_exnref
Other browsers:
Blink: Positive, V8 implements the new proposal and was part of the standardization effort.
WebKit: No public signals on shipping.
web-platform-tests: None. We test this with our own JS tests and the official WebAssembly specification tests for the feature
[1]
https://groups.google.com/a/mozilla.org/g/dev-platform/c/8YQ-YKantdk/m/B4_63RJNBgAJ