Runs WebAssembly.validate() over a tiny module per feature entirely in this browser: your files and inputs never leave your device.
Related tools
- WASM InspectorRead a WebAssembly module's sections, imports, exports, and post-MVP features in your browser.
- GPU InspectorInspect your browser's WebGPU adapter, its supported features, and its limits.
- Glob Pattern TesterCheck file paths against a glob pattern and see which ones match.
- Regex TesterTest a regular expression with live match highlighting, capture groups, a replace preview, and a plain English explanation of the pattern.
- MCP InspectorBrowse an MCP server's tools and schemas, read its responses, and build test calls.
- URLPattern TesterTest route patterns against URLs and inspect every matched group.
What it does
Builds the smallest possible WebAssembly module for each post-MVP proposal, bulk memory, both exception handling designs, extended-const, garbage collected types, memory64, multi-memory, multi-value, mutable globals, reference types, relaxed SIMD, non trapping float to int conversions, sign extension, fixed width SIMD, tail calls, and threads, then asks the browser itself whether each one parses. The result is a labeled yes or no for every feature, a summary count, and a verdict on whether this browser meets the 2023 Wasm 2.0 baseline.
How to use it
Open this page in the browser you want to test. It runs every probe automatically on load and lists what came back. Nothing to paste or configure; reload after changing browser flags or updating your browser to re-check.
Why this one
MDN's compatibility tables and caniuse show what browsers generally support, but not what the copy in front of you right now supports, after your flags, your update channel, your engine build. This page tests the exact browser you are in, the same way the wasm-feature-detect library does, and keeps every check local: your files and inputs never leave your device.
FAQ
- Why does a feature like exception handling show up twice?
- WebAssembly shipped two different designs for exceptions. The original 2021 proposal used try and catch opcodes directly. It was later reworked around a new exnref type and a try_table instruction for better performance and interop with the garbage collection proposal. Engines are moving to the newer design, but both are listed since real world modules still target either one.
- Can I trust this for a shipping decision?
- For the browser you tested it in, yes. Each row comes from asking that exact engine to validate a module that only parses when the feature is implemented, not from a table of what browsers generally claim to support. For a shipping decision you still need to test every browser and version your users actually run.
- Is anything about my browser sent anywhere?
- No. Every probe module is built and validated entirely in your browser using WebAssembly.validate, a purely local, synchronous check. Nothing about your browser, your results, or your device is transmitted.
Keyboard shortcuts: press ? anywhere on this page to see them.