What can this browser's
WebAssembly do?
Live feature detection against your engine — the same probes the q64 host uses to decide which capabilities a qube can lean on.
Memory model
How wide is the address space, and how memory can be shared and moved.
Linear memories indexed by i64 — can exceed the 4 GiB cap of 32-bit wasm.
memory.copy / memory.fill / passive data segments for fast block ops.
A module may declare and address more than one linear memory.
Shared linear memory plus atomic instructions (needs cross-origin isolation).
JS ↔ wasm interface
How richly the host and module can talk to each other.
64-bit integers cross the JS boundary as BigInt instead of being split.
WebAssembly.instantiateStreaming compiles directly from the network stream.
WebAssembly.Function and the JS type-reflection API are present.
Imported string operations backed directly by the JS engine.
WebAssembly.Suspending / Promising — synchronous wasm can await JS promises.
Numeric & SIMD
Vectorisation and the integer/float instruction surface.
Fixed-width 128-bit single-instruction-multiple-data ops.
Faster, less strictly-specified vector ops (results may differ per platform).
Native i32/i64 sign-extension operators (extend8_s, extend16_s, …).
Saturating float-to-int conversions that clamp instead of trapping.
Mutable globals can be imported and exported across the boundary.
Functions and blocks may return more than one value.
Types & control flow
Reference types, managed data, and richer control flow.
externref / funcref reference values and tables of references.
Statically-typed function references (ref $type).
Managed struct/array heap types collected by the host GC.
return_call / return_call_indirect for constant-stack recursion.
try / catch / throw via the exception-handling proposal.
The final, standardised opcode form of exception handling.
Arithmetic in constant initializer expressions (offsets, globals).