webassembly.org Open in urlscan Pro
188.114.96.3  Public Scan

Submitted URL: https://webassembly.org/roadmap/
Effective URL: https://webassembly.org/features/
Submission: On September 01 via api from US — Scanned from NL

Form analysis 0 forms found in the DOM

Text Content

Overview Getting Started Specs Feature Extensions Community FAQ

WebAssembly 1.0 has shipped in 4 major browser engines.           Learn more


FEATURE EXTENSIONS

In November 2017, WebAssembly CG members representing four browsers, Chrome,
Edge, Firefox, and WebKit, reached consensus that the design of the initial
(MVP) WebAssembly API and binary format is complete to the extent that no
further design work is possible without implementation experience and
significant usage.

After the initial release, WebAssembly has been gaining new features through the
standardization process. For the complete list of current proposals and their
respective stages, check out the WebAssembly/proposals repo.

The table below aims to track implemented features in popular engines:

Your browser
Chrome
Firefox
Safari
Node.js
Deno
GraalWasm
Wasmtime
Wasmer
wasm2cPhase 5 - The Feature is StandardizedJS BigInt to Wasm i64 Integration

✓ Supported

85
✓ Supported since version 85

78
✓ Supported since version 78

15[l]
wasm-bigint is supported in desktop Safari since 14.1 and iOS Safari since 14.5;
however BigInt64Array, which is needed by Emscripten, was released in 15

15.0
✓ Supported since version 15.0

1.1.2
✓ Supported since version 1.1.2

21.3
✓ Supported since version 21.3

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

Branch Hinting

Detection unavailable for this feature

[a]
Requires CLI flag --js-flags=--experimental-wasm-branch-hinting

[e]
Enabled in Nightly, requires flag javascript.options.wasm_branch_hinting in
Beta/Release

16
✓ Supported since version 16

[p]
Requires flag --experimental-wasm-branch-hinting

[x]
Requires flag --v8-flags=--experimental-wasm-branch-hinting


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported

Bulk memory Operations

✓ Supported

75
✓ Supported since version 75

79
✓ Supported since version 79

15
✓ Supported since version 15

12.5
✓ Supported since version 12.5

0.4
✓ Supported since version 0.4

23.0
✓ Supported since version 23.0

0.20
✓ Supported since version 0.20

1.0
✓ Supported since version 1.0

1.0.30
✓ Supported since version 1.0.30

Custom Text Format Annotations

Detection unavailable for this feature

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine


✓ Supported, introduced in unknown version (contribute data)


✓ Supported, introduced in unknown version (contribute data)

N/A
✗ Not applicable for this browser/engine

Extended Constant Expressions

✓ Supported

114
✓ Supported since version 114

112
✓ Supported since version 112

17.4
✓ Supported since version 17.4

[r]
Requires flag --experimental-wasm-extended-const

1.33
✓ Supported since version 1.33

[ae]
Requires flag --wasm.ExtendedConstExpressions=true

25
✓ Supported since version 25


✗ Not supported

[ao]
Requires flag --enable-extended-const

Garbage Collection

✓ Supported

119
✓ Supported since version 119

120
✓ Supported since version 120

[m]
Supported in Safari Technology Preview 202

22.0
✓ Supported since version 22.0

1.38
✓ Supported since version 1.38


✗ Not supported

[aj]
Requires flag --wasm=gc


✗ Not supported


✗ Not supported

Multiple Memories

✓ Supported

120
✓ Supported since version 120

125
✓ Supported since version 125


✗ Not supported

22.0
✓ Supported since version 22.0

1.38
✓ Supported since version 1.38

[ag]
Requires flag --wasm.MultiMemory=true

15
✓ Supported since version 15


✗ Not supported

[aq]
Requires flag --enable-multi-memory

Multi-value

✓ Supported

85
✓ Supported since version 85

78
✓ Supported since version 78

13.1
✓ Supported since version 13.1

15.0
✓ Supported since version 15.0

1.3.2
✓ Supported since version 1.3.2

22.3
✓ Supported since version 22.3

0.17
✓ Supported since version 0.17

1.0
✓ Supported since version 1.0

1.0.24
✓ Supported since version 1.0.24

Import/Export of Mutable Globals

✓ Supported

74
✓ Supported since version 74

61
✓ Supported since version 61

12
✓ Supported since version 12

12.0
✓ Supported since version 12.0

0.1
✓ Supported since version 0.1

21.3
✓ Supported since version 21.3


✓ Supported, introduced in unknown version (contribute data)

0.7
✓ Supported since version 0.7

1.0.1
✓ Supported since version 1.0.1

Reference Types

✓ Supported

96
✓ Supported since version 96

79
✓ Supported since version 79

15
✓ Supported since version 15

17.2
✓ Supported since version 17.2

1.16
✓ Supported since version 1.16

23.0
✓ Supported since version 23.0

0.20
✓ Supported since version 0.20

2.0
✓ Supported since version 2.0

1.0.31
✓ Supported since version 1.0.31

Relaxed SIMD

✓ Supported

114
✓ Supported since version 114

[j]
Enabled in Nightly, requires flag javascript.options.wasm_relaxed_simd in
Beta/Release

[n]
Requires JavaScriptCore flag useWebAssemblyRelaxedSIMD

22.0
✓ Supported since version 22.0

1.33
✓ Supported since version 1.33


✗ Not supported

15
✓ Supported since version 15


✗ Not supported


✗ Not supported

Non-trapping float-to-int Conversions

✓ Supported

75
✓ Supported since version 75

64
✓ Supported since version 64

15
✓ Supported since version 15

12.5
✓ Supported since version 12.5

0.4
✓ Supported since version 0.4

22.3
✓ Supported since version 22.3


✓ Supported, introduced in unknown version (contribute data)


✓ Supported, introduced in unknown version (contribute data)

1.0.24
✓ Supported since version 1.0.24

Sign-extension Operators

✓ Supported

74
✓ Supported since version 74

62
✓ Supported since version 62

14.1[o]
Supported in desktop Safari since 14.1 and iOS Safari since 14.5

12.0
✓ Supported since version 12.0

0.1
✓ Supported since version 0.1

22.3
✓ Supported since version 22.3


✓ Supported, introduced in unknown version (contribute data)


✓ Supported, introduced in unknown version (contribute data)

1.0.24
✓ Supported since version 1.0.24

Fixed-width SIMD

✓ Supported

91
✓ Supported since version 91

89
✓ Supported since version 89

16.4
✓ Supported since version 16.4

16.4
✓ Supported since version 16.4

1.9
✓ Supported since version 1.9

24.1
✓ Supported since version 24.1

0.33
✓ Supported since version 0.33

2.0
✓ Supported since version 2.0

1.0.33
✓ Supported since version 1.0.33

Tail Call

✓ Supported

112
✓ Supported since version 112

121
✓ Supported since version 121

[m]
Supported in Safari Technology Preview 202

20.0
✓ Supported since version 20.0

1.32
✓ Supported since version 1.32


✗ Not supported

22[al]
Enabled by default when using the Cranelift backend, except for the s390x
architecture


✗ Not supported

[ar]
Requires flag --enable-tail-call

Typed Function References

Detection unavailable for this feature

119
✓ Supported since version 119

120
✓ Supported since version 120

18
✓ Supported since version 18

22.0
✓ Supported since version 22.0

1.38
✓ Supported since version 1.38


✗ Not supported

[am]
Requires flag --wasm=function-references


✗ Not supported


✗ Not supported

Phase 4 - Standardize the FeatureException Handling with exnref

Detection unavailable for this feature

[b]
Requires flag chrome://flags/#enable-experimental-webassembly-features

[f]
Enabled in Nightly, requires flag javascript.options.wasm_exnref in Beta/Release


✗ Not supported

[q]
Requires flag --experimental-wasm-exnref

[y]
Requires flag --v8-flags=--experimental-wasm-exnref


✗ Not supported


✗ Not supported


✗ Not supported

[an]
Requires flag --enable-exceptions

JS String Builtins

Detection unavailable for this feature

[b]
Requires flag chrome://flags/#enable-experimental-webassembly-features

[h]
Requires flag javascript.options.wasm_js_string_builtins


✗ Not supported

[u]
Requires flag --experimental-wasm-js-string-builtins

[ab]
Requires flag --v8-flags=--experimental-wasm-js-string-builtins


✗ Not supported

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

Threads

✓ Supported

74
✓ Supported since version 74

79
✓ Supported since version 79

14.1[o]
Supported in desktop Safari since 14.1 and iOS Safari since 14.5

16.4
✓ Supported since version 16.4

1.9
✓ Supported since version 1.9

[ah]
Requires flag --wasm.Threads=true

15
✓ Supported since version 15


✗ Not supported


✗ Not supported

Phase 3 - Implementation PhaseESM Integration

Detection unavailable for this feature


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

JS Promise Integration

✗ Not supported

[d]
Requires flag chrome://flags/#enable-experimental-webassembly-jspi

[g]
Requires flag javascript.options.wasm_js_promise_integration


✗ Not supported

[t]
Requires flag --experimental-wasm-jspi

[aa]
Requires flag --v8-flags=--experimental-wasm-jspi


✗ Not supported

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

Memory64

✗ Not supported

[b]
Requires flag chrome://flags/#enable-experimental-webassembly-features

[i]
Enabled in Nightly, requires flag javascript.options.wasm_memory64 in
Beta/Release


✗ Not supported

[v]
Requires flag --experimental-wasm-memory64

[ac]
Requires flag --v8-flags=--experimental-wasm-memory64

[af]
Requires flag --wasm.Memory64=true

[ak]
Requires flag --wasm=memory64


✗ Not supported

[ap]
Requires flag --enable-memory64

Type Reflection

✗ Not supported

[b]
Requires flag chrome://flags/#enable-experimental-webassembly-features

[k]
Requires flag --enable-wasm-type-reflections


✗ Not supported

[w]
Requires flag --experimental-wasm-type-reflection

[ad]
Requires flag --v8-flags=--experimental-wasm-type-reflection


✗ Not supported

N/A
✗ Not applicable for this browser/engine

2.0
✓ Supported since version 2.0

N/A
✗ Not applicable for this browser/engine

Web Content Security Policy

Detection unavailable for this feature

97
✓ Supported since version 97

102
✓ Supported since version 102


✗ Not supported

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

N/A
✗ Not applicable for this browser/engine

Phase 2 - Proposed Spec Text AvailableCustom Page Sizes

Detection unavailable for this feature


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported

[ai]
Requires flag --wasm=custom-page-sizes


✗ Not supported


✗ Not supported

Instrument and Tracing Technology

Detection unavailable for this feature

[c]
Requires CLI flag --js-flags=--experimental-wasm-instruction-tracing


✗ Not supported


✗ Not supported

[s]
Requires flag --experimental-wasm-instruction-tracing

[z]
Requires flag --v8-flags=--experimental-wasm-instruction-tracing


✗ Not supported


✗ Not supported


✗ Not supported


✗ Not supported

DeprecatedLegacy Exception Handling

✓ Supported

95
✓ Supported since version 95

100
✓ Supported since version 100

15.2
✓ Supported since version 15.2

17.0
✓ Supported since version 17.0

1.16
✓ Supported since version 1.16


✗ Not supported


✗ Not supported


✗ Not supported

[an]
Requires flag --enable-exceptions


 1.  Requires CLI flag --js-flags=--experimental-wasm-branch-hinting
 2.  Requires flag chrome://flags/#enable-experimental-webassembly-features
 3.  Requires CLI flag --js-flags=--experimental-wasm-instruction-tracing
 4.  Requires flag chrome://flags/#enable-experimental-webassembly-jspi
 5.  Enabled in Nightly, requires flag javascript.options.wasm_branch_hinting in
     Beta/Release
 6.  Enabled in Nightly, requires flag javascript.options.wasm_exnref in
     Beta/Release
 7.  Requires flag javascript.options.wasm_js_promise_integration
 8.  Requires flag javascript.options.wasm_js_string_builtins
 9.  Enabled in Nightly, requires flag javascript.options.wasm_memory64 in
     Beta/Release
 10. Enabled in Nightly, requires flag javascript.options.wasm_relaxed_simd in
     Beta/Release
 11. Requires flag --enable-wasm-type-reflections
 12. wasm-bigint is supported in desktop Safari since 14.1 and iOS Safari since
     14.5; however BigInt64Array, which is needed by Emscripten, was released in
     15
 13. Supported in Safari Technology Preview 202
 14. Requires JavaScriptCore flag useWebAssemblyRelaxedSIMD
 15. Supported in desktop Safari since 14.1 and iOS Safari since 14.5
 16. Requires flag --experimental-wasm-branch-hinting
 17. Requires flag --experimental-wasm-exnref
 18. Requires flag --experimental-wasm-extended-const
 19. Requires flag --experimental-wasm-instruction-tracing
 20. Requires flag --experimental-wasm-jspi
 21. Requires flag --experimental-wasm-js-string-builtins
 22. Requires flag --experimental-wasm-memory64
 23. Requires flag --experimental-wasm-type-reflection
 24. Requires flag --v8-flags=--experimental-wasm-branch-hinting
 25. Requires flag --v8-flags=--experimental-wasm-exnref
 26. Requires flag --v8-flags=--experimental-wasm-instruction-tracing
 27. Requires flag --v8-flags=--experimental-wasm-jspi
 28. Requires flag --v8-flags=--experimental-wasm-js-string-builtins
 29. Requires flag --v8-flags=--experimental-wasm-memory64
 30. Requires flag --v8-flags=--experimental-wasm-type-reflection
 31. Requires flag --wasm.ExtendedConstExpressions=true
 32. Requires flag --wasm.Memory64=true
 33. Requires flag --wasm.MultiMemory=true
 34. Requires flag --wasm.Threads=true
 35. Requires flag --wasm=custom-page-sizes
 36. Requires flag --wasm=gc
 37. Requires flag --wasm=memory64
 38. Enabled by default when using the Cranelift backend, except for the s390x
     architecture
 39. Requires flag --wasm=function-references
 40. Requires flag --enable-exceptions
 41. Requires flag --enable-extended-const
 42. Requires flag --enable-memory64
 43. Requires flag --enable-multi-memory
 44. Requires flag --enable-tail-call

To detect supported features at runtime from JavaScript, check out the
wasm-feature-detect library, which powers the “Your browser” column above.