Overview
This is a translated, structured digest of a detailed Chinese-language investigation into WebAssembly 3.0, combining specification forensics, engine source-code review, and original Chrome UseCounter telemetry (13 full time series pulled 2026-08-06, data through 2026-08-04).
One-line conclusion: WebAssembly 3.0 is technically honest and solidly engineered, but its real-world footprint is roughly two orders of magnitude smaller than nearly everyone assumes.
Key points
Version semantics and documentation inconsistencies
- Wasm 3.0 was declared complete as a "live standard" on 2025-09-17; claims of a "2026-06-13" release are false. There is no standalone
wasm-core-3document—the 3.0 content lives in a Candidate Standard still short-namedwasm-core-2(rendered 2026-07-28). Wasm 3.0 will never be a W3C Recommendation due to the "evergreen" model. - Two official documents disagree on what 3.0 contains: the proposals tracker lists 11 features; the core spec change history lists 10, with three mismatches (Branch Hinting and JS String Builtins absent from the core change history; Profiles included despite being Phase 1—and uniquely lacking a proposal footnote). No errata exist; fixes roll into the main branch, so no citable frozen version exists.
- WebAssemblyInstantiation: 0.0613% of page loads. The widely circulated "5.5% of Chrome pages use Wasm" is off by ~90x; the "41% of sites" claim is baseless.
- Memory64: 0.00000146%—usage *dropped* to 18% of its flag-era peak after Chrome enabled it by default. asm.js (2013) outruns it 1670x the same day.
- New exnref exception handling (3.0) vs legacy EH: ~28,900x gap on 30-day medians; ~99.9965% of Wasm exception handling in the wild still runs the legacy scheme. Kotlin/Wasm officially requires "legacy exception handling."
- Multi-memory: 0.0012% of Wasm pages; engine limits differ 1000x (V8: 100,000; SpiderMonkey/JSC: 100).
- Claimed usage "explosions" (e.g., "3809x YoY" for Relaxed SIMD) are single-day step jumps from single-source deployments, not adoption curves—median-basis growth for exnref is only 4.2x and multi-memory 1.4x.
- WasmGC, TypedFuncRef, and JS String Builtins show near-identical values, peak days (2026-06-09), and simultaneous halving—strong inference (not proven) that one large deployment, likely Google's J2CL-compiled Sheets/Docs, accounts for most WasmGC usage.
- The non-standardized Custom Descriptors (Stage 3) reached 0.0051% in eight months from zero—4.5x faster than WasmGC took three years—showing slow 3.0 uptake reflects lack of demand, not insufficient time.
- Typed function references (
(ref $sig),call_ref, iso-recursive subtyping) are the genuine foundation enabling WasmGC—at the cost of sharply higher verifier complexity. - WasmGC is not "a GC added to Wasm"; structs/arrays are allocated on the host GC heap. This prevents interior pointers, gives no GC-policy control, and cannot express Java-style interface dispatch (forcing Binaryen's J2CL-specific optimization pass).
- Memory64's six-layer gap: spec validation limit 16 EiB → SpiderMonkey/JSC declaration cap ~8 PiB → V8 architectural ceiling 128 TB (
wasm-limits.h: "the number of pages is still a 32-bit number for now") → JS-API growth cap 16 GiB → V8 practical 16 GiB (2 GiB on 32-bit hosts, identical to memory32—pure negative on 32-bit devices). Proposal co-chair Ben Visness: "The only reason to use Memory64 is if you actually need more than 4GB... We still don't even have a way to release memory back to the operating system." table64 remains WIP in V8/Firefox. - Deterministic Profile elegantly pins relaxed-SIMD instructions to fixed semantics (institutionalized determinism for blockchains/replay), but only Wasmtime implements it and no real-world case studies exist—"beautiful design, zero deployment."
- Not in 3.0: Threads (Phase 4), Stack Switching (Phase 3), JSPI, Component Model, Shared-Everything Threads (Phase 1), Custom Descriptors (Stage 3).
- Full-3.0 thresholds (per Scala.js): Chrome 137, Firefox 134, Safari 26 (year-based), Node.js 25—far above first-support versions (WasmGC shipped in Chrome 119, 18 major versions earlier). "Safari 145" does not exist.
Adoption reality (Chrome UseCounter)
Technical substance of 3.0
Engine support
Methodology discipline
The report enforces: first-source numbers only; 30-day medians for counters below 0.001%; last 3 days of series treated as unsettled; bucket_id verified against Chrome's ownproperty_name fields (five mislabeled counters corrected); YoY claims checked for ±7-day step jumps.> Bottom line: 3.0's type-system work is the most important foundation since MVP, but "standard completion" and real-world impact remain decoupled—engine shipping precedes standard ratification by years, and adoption follows deployment by major vendors, not standardization.