Time to Stable

For a given set of browsers, what APIs are in all of them and how many days it take for the API to land in the first browser to the last.

Example Comparisons
Browsers
Features

Summary

A count of the number of APIs that landed in A first and B last.
Last in EdgeLast in Firefox
First in Edge 29
First in Firefox 41

Average time for an API to become available across Edge and Firefox

70 APIs took an average of 207.87 days to become available to use.

API breakdown:

Average time to landing by year of first landing

If a feature landed in the earliest browser in 20XX it took Y days on average to become available in the last browser (when considering Edge and Firefox). TTA (time to available).
WebAssembly APIsWebAssembly TTA
2017 30215.60
2018 7368.86
2020 6194.50
2021 10175.10
2023 7262.43
2024 782.00
2025 357.33

The Tortoise and the Hare

There is a natural tension on the web with respect to browser engines. Every engine has their own set of priorities which define the level of investment that they choose to make and on which areas they choose to make it.

A developer naturally wants their experiences to be available to the widest audience possible and these differing priorities create an unevenness on the platform (a lumpiness) making it harder for developers to build experiences that work everywhere.

This section highlights where browsers are pushing and pulling on the platform.

Sprinters

This table is designed to show which browsers are pushing on the platform the most.

Adding features to quickly is not always desired because developers are unlikely to adopt those features in their sites or apps.

For a given year, if a feature landed in Browser X first, how many days it take on average to be available in Edge and Firefox. TTA (time to available).
Year WebAssemblyWebAssembly TTA
2017
  Firefox 28224.00
  Edge 298.00
2018
  Firefox 6418.67
  Edge 170.00
2020
  Firefox 3212.67
  Edge 3176.33
2021
  Edge 10175.10
2023
  Edge 6297.50
  Firefox 152.00
2024
  Edge 782.00
2025
  Firefox 357.33

Plodders

This table is designed to show which browsers are pulling on the platform the most.

For a feature that first landed in year X, how many days did it take on average for the last browser to catch up across Edge and Firefox. TTA (time to available).
Year WebAssembly countWebAssembly TTA
2017
  Edge 28224.00
  Firefox 298.00
2018
  Edge 6418.67
  Firefox 170.00
2020
  Edge 3212.67
  Firefox 3176.33
2021
  Firefox 10175.10
2023
  Firefox 6297.50
  Edge 152.00
2024
  Firefox 782.00
2025
  Edge 357.33

Stable APIs

Below is a list of features that are in Edge and Firefox

Raw Data

Quick Links:

WebAssembly Data

API First Browser Date Last Browser Date Days Notes
webassembly.BigInt-to-i64-integration πŸ“‹Firefox6/30/2020 Edge8/27/202058
webassembly.api πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.CompileError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.CompileError.CompileError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Exception πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Exception.Exception πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Exception.Exception.options_parameter_traceStack Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Exception.getArg πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Exception.is πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Exception.stack Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Global πŸ“‹Firefox9/5/2018 Edge1/15/2020497
webassembly.api.Global.Global πŸ“‹Firefox9/5/2018 Edge1/15/2020497
Chrome: Constructing a Global with a value of v128 produces a TypeError.Chrome Android: Constructing a Global with a value of v128 produces a TypeError.Deno: Constructing a Global with a value of v128 produces a TypeError.Edge: Constructing a Global with a value of v128 produces a TypeError.Node.js: Constructing a Global with a value of v128 produces a TypeError.Quest Browser: Constructing a Global with a value of v128 produces a TypeError.Opera: Constructing a Global with a value of v128 produces a TypeError.Opera Android: Constructing a Global with a value of v128 produces a TypeError.Samsung Internet: Constructing a Global with a value of v128 produces a TypeError.WebView Android: Constructing a Global with a value of v128 produces a TypeError.
webassembly.api.Global.value πŸ“‹Firefox9/5/2018 Edge1/15/2020497
webassembly.api.Global.valueOf πŸ“‹Firefox9/5/2018 Edge1/15/2020497
webassembly.api.Instance πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Instance.Instance πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Instance.exports πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.JSTag_static πŸ“‹Edge7/21/2023 Firefox10/1/2024438
webassembly.api.LinkError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.LinkError.LinkError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Memory πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Memory.Memory πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Memory.Memory.shared πŸ“‹Edge1/15/2020 Firefox6/30/2020167
Safari: Shared WebAssembly.Memory is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.Safari on iOS: Shared WebAssembly.Memory is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.WebView on iOS: Shared WebAssembly.Memory is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.
webassembly.api.Memory.buffer πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Memory.grow πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Memory.toFixedLengthBuffer πŸ“‹Firefox11/11/2025 Edge1/21/202671
webassembly.api.Memory.toResizableBuffer πŸ“‹Firefox11/11/2025 Edge1/21/202671
webassembly.api.Module πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Module.Module πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Module.Module.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.api.Module.customSections_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Module.exports_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Module.imports_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.RuntimeError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.RuntimeError.RuntimeError πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table.Table πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table.get πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table.grow πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table.length πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Table.set πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.Tag πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.Tag.Tag πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.api.compileStreaming_static πŸ“‹Edge10/17/2017 Firefox1/23/201898
webassembly.api.compileStreaming_static.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.api.compile_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.compile_static.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.api.instantiateStreaming_static πŸ“‹Edge10/17/2017 Firefox1/23/201898
webassembly.api.instantiateStreaming_static.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.api.instantiate_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.instantiate_static.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.api.validate_static πŸ“‹Firefox3/7/2017 Edge10/17/2017224
webassembly.api.validate_static.compile_options πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.bulk-memory-operations πŸ“‹Edge1/15/2020 Firefox6/30/2020167
webassembly.exception-handling πŸ“‹Edge10/21/2021 Firefox5/3/2022194
webassembly.extended-constant-expressions πŸ“‹Firefox4/11/2023 Edge6/2/202352
webassembly.fixed-width-SIMD πŸ“‹Edge5/27/2021 Firefox6/1/20215
webassembly.garbage-collection πŸ“‹Edge11/2/2023 Firefox11/21/202319
webassembly.jsStringBuiltins πŸ“‹Edge10/17/2024 Firefox1/7/202582
webassembly.memory64 πŸ“‹Firefox1/7/2025 Edge2/6/202530
webassembly.multi-value πŸ“‹Firefox6/30/2020 Edge10/9/2020101
webassembly.multiMemory πŸ“‹Edge12/7/2023 Firefox4/16/2024131
webassembly.mutable-globals πŸ“‹Firefox9/5/2018 Edge1/15/2020497
webassembly.non-trapping-float-to-int-conversions πŸ“‹Edge10/2/2018 Firefox12/11/201870
webassembly.reference-types πŸ“‹Firefox7/28/2020 Edge11/19/2021479
webassembly.relaxed-SIMD πŸ“‹Edge6/2/2023 Firefox12/9/2025921
webassembly.sign-extension-operations πŸ“‹Firefox9/5/2018 Edge10/2/201827
webassembly.tail-calls πŸ“‹Edge4/6/2023 Firefox12/19/2023257
webassembly.threads-and-atomics πŸ“‹Edge1/15/2020 Firefox7/28/2020195
webassembly.typedFunctionReferences πŸ“‹Edge11/2/2023 Firefox11/21/202319