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 ChromeLast in Safari
First in Chrome 56
First in Safari 6

Average time for an API to become available across Chrome and Safari

62 APIs took an average of 343.73 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 Chrome and Safari). TTA (time to available).
WebAssembly APIsWebAssembly TTA
2017 30282.27
2018 6633.33
2019 4919.50
2020 2227.00
2021 10113.20
2022 1988.00
2023 5449.40
2024 1423.00
2025 340.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 Chrome and Safari. TTA (time to available).
Year WebAssemblyWebAssembly TTA
2017
  Chrome 30282.27
2018
  Chrome 6633.33
2019
  Chrome 4919.50
2020
  Chrome 1244.00
  Safari 1210.00
2021
  Chrome 9123.44
  Safari 121.00
2022
  Safari 1988.00
2023
  Chrome 5449.40
2024
  Chrome 1423.00
2025
  Safari 340.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 Chrome and Safari. TTA (time to available).
Year WebAssembly countWebAssembly TTA
2017
  Safari 30282.27
2018
  Safari 6633.33
2019
  Safari 4919.50
2020
  Safari 1244.00
  Chrome 1210.00
2021
  Safari 9123.44
  Chrome 121.00
2022
  Chrome 1988.00
2023
  Safari 5449.40
2024
  Safari 1423.00
2025
  Chrome 340.33

Stable APIs

Below is a list of features that are in Chrome and Safari

Raw Data

Quick Links:

WebAssembly Data

API First Browser Date Last Browser Date Days Notes
webassembly.BigInt-to-i64-integration πŸ“‹Chrome8/25/2020 Safari4/26/2021244
webassembly.api πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.CompileError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.CompileError.CompileError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Exception πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.Exception.Exception πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.Exception.Exception.options_parameter_traceStack Chrome10/19/2021 Safari12/13/202155
webassembly.api.Exception.getArg πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.Exception.is πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.Global πŸ“‹Chrome9/4/2018 Safari3/24/2020567
webassembly.api.Global.Global πŸ“‹Chrome9/4/2018 Safari3/24/2020567
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 πŸ“‹Chrome9/4/2018 Safari3/24/2020567
webassembly.api.Global.valueOf πŸ“‹Chrome9/4/2018 Safari3/24/2020567
webassembly.api.Instance πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Instance.Instance πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Instance.exports πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.JSTag_static πŸ“‹Chrome7/18/2023 Safari3/31/2025622
webassembly.api.LinkError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.LinkError.LinkError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Memory πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Memory.Memory πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Memory.Memory.shared πŸ“‹Chrome4/23/2019 Safari12/13/2021965
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 πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Memory.grow πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Memory.toFixedLengthBuffer πŸ“‹Safari12/12/2025 Chrome1/13/202632
webassembly.api.Memory.toResizableBuffer πŸ“‹Safari12/12/2025 Chrome1/13/202632
webassembly.api.Module πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Module.Module πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Module.customSections_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Module.exports_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Module.imports_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.RuntimeError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.RuntimeError.RuntimeError πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table.Table πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table.get πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table.grow πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table.length πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Table.set πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.Tag πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.Tag.Tag πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.api.compileStreaming_static πŸ“‹Chrome7/25/2017 Safari9/20/20211518
webassembly.api.compile_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.instantiateStreaming_static πŸ“‹Chrome7/25/2017 Safari9/20/20211518
webassembly.api.instantiate_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.api.validate_static πŸ“‹Chrome3/9/2017 Safari9/19/2017194
webassembly.branch-hinting πŸ“‹Safari9/12/2022 Chrome5/27/2025988
webassembly.bulk-memory-operations πŸ“‹Chrome6/4/2019 Safari10/25/2021874
webassembly.exception-handling πŸ“‹Chrome10/19/2021 Safari12/13/202155
webassembly.exceptionsFinal πŸ“‹Safari3/31/2025 Chrome5/27/202557
webassembly.extended-constant-expressions πŸ“‹Chrome5/30/2023 Safari3/5/2024280
webassembly.fixed-width-SIMD πŸ“‹Chrome5/25/2021 Safari3/27/2023671
webassembly.garbage-collection πŸ“‹Chrome10/31/2023 Safari12/11/2024407
webassembly.jsStringBuiltins πŸ“‹Chrome10/15/2024 Safari12/12/2025423
webassembly.multi-value πŸ“‹Safari3/24/2020 Chrome10/20/2020210
webassembly.mutable-globals πŸ“‹Chrome9/4/2018 Safari3/24/2020567
webassembly.non-trapping-float-to-int-conversions πŸ“‹Chrome6/4/2019 Safari10/25/2021874
webassembly.reference-types πŸ“‹Safari10/25/2021 Chrome11/15/202121
webassembly.sign-extension-operations πŸ“‹Chrome9/4/2018 Safari4/26/2021965
webassembly.tail-calls πŸ“‹Chrome4/4/2023 Safari12/11/2024617
webassembly.threads-and-atomics πŸ“‹Chrome4/23/2019 Safari12/13/2021965
webassembly.typedFunctionReferences πŸ“‹Chrome10/31/2023 Safari9/16/2024321