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 Chrome AndroidLast in Safari
First in Chrome Android 724
First in Safari 991

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

1715 APIs took an average of 1335.51 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 Android and Safari). TTA (time to available).
JS APIsJS TTAHTML APIsHTML TTA
2003 2863290.281133292.00
2004 0NaN123068.00
2005 93206.6732616.00
2007 251706.00961706.00
2008 21562.00211644.05
2009 101115.001281115.00
2010 11751.0038832.79
2011 76346.2214432.50
2012 91464.0047297.09
2013 651140.1291980.67
2014 125323.81341691.18
2015 59287.737890.43
2016 92193.5324722.13
2017 31353.3515521.20
2018 39659.4114939.64
2019 47534.4514772.21
2020 37229.1941018.75
2021 39229.794284.25
2022 32142.2213764.38
2023 48221.6512281.08
2024 27301.898386.00
2025 653.6710196.10

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 Android and Safari. TTA (time to available).
Year JSJS TTAHTMLHTML TTA
2003
  Safari 2863290.281133292.00
2004
  Safari 0NaN123068.00
2005
  Safari 93206.6732616.00
2007
  Safari 251706.00961706.00
2008
  Safari 21562.00211644.05
2009
  Safari 101115.001281115.00
2010
  Safari 11751.0038832.79
2011
  Safari 76346.2214432.50
2012
  Chrome Android 61352.8336321.56
  Safari 31686.3311217.00
2013
  Chrome Android 581203.0372128.57
  Safari 7618.8621463.00
2014
  Chrome Android 117320.56331729.94
  Safari 8371.381412.00
2015
  Chrome Android 49301.047890.43
  Safari 10222.500NaN
2016
  Chrome Android 80190.5619738.53
  Safari 12213.335659.80
2017
  Chrome Android 26379.3810731.70
  Safari 5218.005100.20
2018
  Safari 15.0041418.25
  Chrome Android 38676.6310748.20
2019
  Safari 0NaN4611.00
  Chrome Android 47534.4510836.70
2020
  Chrome Android 36231.2831061.00
  Safari 1154.001892.00
2021
  Chrome Android 36244.974284.25
  Safari 347.670NaN
2022
  Chrome Android 1496.2911879.00
  Safari 18177.942134.00
2023
  Chrome Android 24117.679295.44
  Safari 24325.633238.00
2024
  Chrome Android 15391.138386.00
  Safari 12190.330NaN
2025
  Chrome Android 241.009205.00
  Safari 460.001116.00

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 Android and Safari. TTA (time to available).
Year JS countJS TTAHTML countHTML TTA
2003
  Chrome Android 2863290.281133292.00
2004
  Chrome Android 0NaN123068.00
2005
  Chrome Android 93206.6732616.00
2007
  Chrome Android 251706.00961706.00
2008
  Chrome Android 21562.00211644.05
2009
  Chrome Android 101115.001281115.00
2010
  Chrome Android 11751.0038832.79
2011
  Chrome Android 76346.2214432.50
2012
  Safari 61352.8336321.56
  Chrome Android 31686.3311217.00
2013
  Safari 581203.0372128.57
  Chrome Android 7618.8621463.00
2014
  Safari 117320.56331729.94
  Chrome Android 8371.381412.00
2015
  Safari 49301.047890.43
  Chrome Android 10222.500NaN
2016
  Safari 80190.5619738.53
  Chrome Android 12213.335659.80
2017
  Safari 26379.3810731.70
  Chrome Android 5218.005100.20
2018
  Chrome Android 15.0041418.25
  Safari 38676.6310748.20
2019
  Chrome Android 0NaN4611.00
  Safari 47534.4510836.70
2020
  Safari 36231.2831061.00
  Chrome Android 1154.001892.00
2021
  Safari 36244.974284.25
  Chrome Android 347.670NaN
2022
  Safari 1496.2911879.00
  Chrome Android 18177.942134.00
2023
  Safari 24117.679295.44
  Chrome Android 24325.633238.00
2024
  Safari 15391.138386.00
  Chrome Android 12190.330NaN
2025
  Safari 241.009205.00
  Chrome Android 460.001116.00

Stable APIs

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

Raw Data

Quick Links:

HTML Data

API First Browser Date Last Browser Date Days Notes
html.elements.a 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Starting with Firefox 41, <a> without href attribute is no longer classified as interactive content: clicking it inside <label> will activate labelled content (bug 1167816).Firefox for Android: Starting with Firefox for Android 41, <a> without href attribute is no longer classified as interactive content: clicking it inside <label> will activate labelled content (bug 1167816).
html.elements.a.charset 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.coords 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.Firefox for Android: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.
html.elements.a.download 📋Chrome Android6/27/2012 Safari3/27/20171734
Chrome: Starting in Chrome 65, cross-origin downloads are not supported on the <a> element.Chrome Android: Starting in Chrome Android 65, cross-origin downloads are not supported on the <a> element.Edge: Starting in Edge 79, cross-origin downloads are not supported on the <a> element.Edge: Until Edge 14 (build 14357), attempting to download data URIs caused Edge to crash (bug 7160092).Edge: Edge 17 or older didn't follow the attributes' value to determine filename (bug 7260192).Firefox for Android: The attribute's filename value only affects the suggested file name for the blob: and data: URI schemes. Other schemes ignore the suggested filename. See bug 1845642.Quest Browser: Starting in Quest Browser 5.0, cross-origin downloads are not supported on the <a> element.Opera: Starting in Opera 52, cross-origin downloads are not supported on the <a> element.Opera Android: Starting in Opera Android 47, cross-origin downloads are not supported on the <a> element.Samsung Internet: Starting in Samsung Internet 9.0, cross-origin downloads are not supported on the <a> element.WebView Android: Starting in WebView Android 65, cross-origin downloads are not supported on the <a> element.
html.elements.a.href 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.href.href_top Safari6/8/2009 Chrome Android6/27/20121115
html.elements.a.hreflang 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.implicit_noopener Safari3/25/2019 Chrome Android1/19/2021666
html.elements.a.name 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.ping 📋Chrome Android6/27/2012 Safari7/25/201228
Firefox: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.Firefox for Android: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.
html.elements.a.referrerpolicy 📋Chrome Android6/8/2016 Safari9/16/20201561
html.elements.a.rel 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.rel.noopener 📋Chrome Android3/9/2016 Safari3/27/2017383
Firefox: Before Firefox 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox 63, these windows have the same features enabled by default as any other window.Firefox for Android: Before Firefox for Android 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox for Android 63, these windows have the same features enabled by default as any other window.
html.elements.a.rel.noreferrer 📋Safari6/7/2010 Chrome Android6/27/2012751
Internet Explorer: Only supported in IE11 in later versions of Windows 10 (creators update). (Per caniuse.com.)
html.elements.a.rev 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.shape 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.Firefox for Android: You can no longer nest an <a> element inside a <map> element to create a hotspot region - coords and shape attribute support removed.
html.elements.a.target 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.a.text_fragments Chrome Android2/4/2020 Safari10/24/2022993
html.elements.a.type 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.abbr 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.acronym 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.address 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.alt 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.coords 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.download 📋Chrome Android10/19/2016 Safari3/27/2017159
html.elements.area.href 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.implicit_noopener Safari3/25/2019 Chrome Android1/19/2021666
html.elements.area.nohref 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.ping 📋Chrome Android6/27/2012 Safari7/25/201228
Firefox: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.Firefox for Android: This property is exposed but has no effect if the browser.send_pings preference is not set to true. See bug 951104.
html.elements.area.referrerpolicy 📋Chrome Android6/8/2016 Safari9/16/20201561
html.elements.area.rel 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.area.rel.noopener 📋Chrome Android3/9/2016 Safari3/27/2017383
Firefox: Before Firefox 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox 63, these windows have the same features enabled by default as any other window.Firefox for Android: Before Firefox for Android 63, rel="noopener" created windows with all features disabled by default. Starting with Firefox for Android 63, these windows have the same features enabled by default as any other window.
html.elements.area.rel.noreferrer 📋Safari6/7/2010 Chrome Android6/27/2012751
Internet Explorer: Only supported in IE11 in later versions of Windows 10 (creators update). (Per caniuse.com.)
html.elements.area.shape 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.area.target 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.article 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.aside 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.audio 📋Safari3/18/2008 Chrome Android6/27/20121562
Firefox: For Firefox to play audio, the server must serve the file using the correct MIME type.Firefox for Android: For Firefox for Android to play audio, the server must serve the file using the correct MIME type.
html.elements.audio.controls 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.audio.crossorigin 📋Chrome Android2/26/2014 Safari9/20/2016937
Firefox: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.Firefox for Android: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.
html.elements.audio.disableremoteplayback 📋Chrome Android2/1/2017 Safari3/24/20201147
html.elements.audio.loop 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.audio.muted 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.audio.preload 📋Safari3/18/2008 Chrome Android6/27/20121562
Chrome: Defaults to metadata in Chrome 64.Chrome Android: Defaults to metadata in Chrome Android 64.Quest Browser: Defaults to metadata in Quest Browser 5.0.Opera: Defaults to metadata in Opera 51.Opera Android: Defaults to metadata in Opera 51.Samsung Internet: Defaults to metadata in Samsung Internet 9.0.WebView Android: Defaults to metadata in Chrome 64.
html.elements.audio.src 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.b 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.base 📋Safari10/26/2007 Chrome Android6/27/20121706
Internet Explorer: Before Internet Explorer 7, <base> can be positioned anywhere in the document and the nearest value of <base> is used.
html.elements.base.href 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.base.href.forbid_data_javascript_urls Chrome Android4/25/2017 Safari3/24/20201064
html.elements.base.href.relative_url Safari10/26/2007 Chrome Android6/27/20121706
html.elements.base.target 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.bdi 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.bdo 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.big 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.blockquote 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.blockquote.cite Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.body.alink Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body.background Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body.bgcolor Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body.bottommargin Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.leftmargin Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.link Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body.rightmargin Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.text Safari6/8/2009 Chrome Android6/27/20121115
html.elements.body.topmargin Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 35, it was supported in Quirks Mode only.Firefox for Android: Before Firefox for Android 35, it was supported in Quirks Mode only.
html.elements.body.vlink Safari6/8/2009 Chrome Android6/27/20121115
html.elements.br 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.br.clear Safari6/8/2009 Chrome Android6/27/20121115
html.elements.button 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.button.command 📋Chrome Android4/1/2025 Safari12/12/2025255
html.elements.button.command.request-close 📋Chrome Android8/5/2025 Safari12/12/2025129
html.elements.button.commandfor 📋Chrome Android4/1/2025 Safari12/12/2025255
html.elements.button.commandfor.implicit_anchor_reference 📋Chrome Android4/1/2025 Safari12/12/2025255
html.elements.button.disabled 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.button.form Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.formaction Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.formenctype Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.formmethod Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.formnovalidate Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.formtarget Safari7/20/2011 Chrome Android6/27/2012343
html.elements.button.name Safari6/8/2009 Chrome Android6/27/20121115
html.elements.button.popovertarget 📋Chrome Android5/30/2023 Safari9/18/2023111
html.elements.button.popovertarget.implicit_anchor_reference 📋Chrome Android2/4/2025 Safari9/15/2025223
html.elements.button.popovertargetaction 📋Chrome Android5/30/2023 Safari9/18/2023111
html.elements.button.type Safari6/8/2009 Chrome Android6/27/20121115
html.elements.button.value Safari6/8/2009 Chrome Android6/27/20121115
html.elements.canvas 📋Safari4/29/2005 Chrome Android6/27/20122616
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.canvas.height 📋Safari4/29/2005 Chrome Android6/27/20122616
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.canvas.width 📋Safari4/29/2005 Chrome Android6/27/20122616
Firefox: Before Firefox 5, the canvas width and height were signed integers instead of unsigned integers.Firefox: Before Firefox 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox: Before Firefox 12, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Firefox for Android: Before Firefox for Android 5, the canvas width and height were signed integers instead of unsigned integers.Firefox for Android: Before Firefox for Android 6, a <canvas> element with a zero width or height would be rendered as if it had default dimensions.Firefox for Android: Before Firefox for Android 14, if JavaScript is disabled, the <canvas> element was being rendered instead of showing the fallback content as per the specification. Since then, the fallback content is rendered instead.Safari: Although early versions of Apple's Safari browser don't require the closing tag, the specification indicates that it is required, so you should be sure to include it for broadest compatibility. Before version 2, Safari will render the content of the fallback in addition to the canvas itself unless you use CSS tricks to mask it.
html.elements.caption 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.caption.align Safari6/8/2009 Chrome Android6/27/20121115
html.elements.center 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.cite 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.code 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.col 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.col.align 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.col.span 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.col.valign 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.col.width 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.colgroup 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.colgroup.align 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.colgroup.span 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.colgroup.valign 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.colgroup.width 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.data 📋Safari9/20/2016 Chrome Android10/24/2017399
html.elements.data.value 📋Safari9/20/2016 Chrome Android10/24/2017399
html.elements.datalist 📋Chrome Android2/26/2014 Safari3/25/20191853
Firefox for Android: The dropdown menu containing available options does not appear. See bug 1535985.
html.elements.datalist.input_type_color 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_date 📋Chrome Android2/26/2014 Safari4/26/20212616
html.elements.datalist.input_type_email 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_number 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_range 📋Chrome Android3/16/2017 Safari3/25/2019739
html.elements.datalist.input_type_search 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_tel 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_text 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.datalist.input_type_time 📋Chrome Android2/26/2014 Safari4/26/20212616
html.elements.datalist.input_type_url 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.dd 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element was implemented using the HTMLSpanElement interface instead of HTMLElement.
html.elements.del 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.del.cite Safari10/26/2007 Chrome Android6/27/20121706
html.elements.del.datetime Safari10/26/2007 Chrome Android6/27/20121706
html.elements.details 📋Chrome Android6/27/2012 Safari7/25/201228
Firefox: Before Firefox 57, there was a bug meaning that <details> elements can't be made open by default using the open attribute if they have a CSS animation active on them.Firefox for Android: There is a bug meaning that <details> elements can't be made open by default using the open attribute if they have a CSS animation active on them.
html.elements.details.name Chrome Android12/5/2023 Safari12/11/20236
html.elements.details.open Chrome Android6/27/2012 Safari7/25/201228
html.elements.details.search_match_opens Chrome Android1/4/2022 Safari12/12/20251438
Firefox: The browser does not correctly scroll to the matching text. See bug 2006040.Firefox for Android: The browser does not correctly scroll to the matching text. See bug 2006040.Safari: The browser does not correctly scroll to the matching text. See bug 304174.Safari on iOS: The browser does not correctly scroll to the matching text. See bug 304174.WebView on iOS: The browser does not correctly scroll to the matching text. See bug 304174.
html.elements.dfn 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.dialog 📋Chrome Android9/3/2014 Safari3/14/20222749
html.elements.dialog.open Chrome Android9/3/2014 Safari3/14/20222749
html.elements.dir 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.dir.compact Safari6/8/2009 Chrome Android6/27/20121115
html.elements.div 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.div.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.dl 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.dt 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.em 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.align 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.height 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.name 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.src 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.embed.width 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.fieldset 📋Safari6/8/2009 Chrome Android6/27/20121115
Chrome: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.Chrome Android: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.Edge: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 4511145.Quest Browser: Before version 12.0, this element did not support flexbox and grid layouts within this element. See bug 41027853.Samsung Internet: Before version 14.0, this element did not support flexbox and grid layouts within this element. See bug 41027853.WebView Android: Before version 86, this element did not support flexbox and grid layouts within this element. See bug 41027853.
html.elements.fieldset.disabled 📋Safari7/25/2012 Chrome Android2/27/2013217
Edge: Does not work with nested fieldsets. For example: <fieldset disabled><fieldset><!--Still enabled--></fieldset></fieldset>Internet Explorer: Not all form control descendants of a disabled fieldset are properly disabled in IE11; see IE bug 817488: input[type='file'] not disabled inside disabled fieldset and IE bug 962368: Can still edit input[type='text'] within fieldset[disabled].
html.elements.fieldset.form 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.fieldset.name 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.figcaption 📋Safari7/20/2011 Chrome Android6/27/2012343
html.elements.figure 📋Safari7/20/2011 Chrome Android6/27/2012343
html.elements.font 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.font.color Safari6/8/2009 Chrome Android6/27/20121115
html.elements.font.face Safari6/8/2009 Chrome Android6/27/20121115
html.elements.font.size Safari6/8/2009 Chrome Android6/27/20121115
html.elements.footer 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.form 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.accept-charset 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.action 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.autocomplete 📋Chrome Android6/27/2012 Safari7/25/201228
Chrome: The Google Chrome UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Chrome might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Chrome Android: The Chrome Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Chrome Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Quest Browser: The Quest Browser UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Quest Browser might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Opera: The Opera UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Opera might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Opera Android: The Opera Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Opera Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.Samsung Internet: The Samsung Internet UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, Samsung Internet might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.WebView Android: The WebView Android UI for auto-complete request varies, depending on whether autocomplete is set to off on <input> elements as well as their form. Specifically, when a form has autocomplete set to off and its <input> element's autocomplete attribute is not set, then if the user asks for autofill suggestions for the <input> element, WebView Android might display a message saying 'autocomplete has been disabled for this form.' On the other hand, if both the form and the input element have autocomplete set to off, the browser will not display that message. For this reason, you should set autocomplete to off for each <input> that has custom auto-completion.
html.elements.form.autocomplete.one-time-code Safari9/17/2018 Chrome Android7/27/2020679
html.elements.form.autocomplete.webauthn 📋Chrome Android11/29/2022 Safari3/27/2023118
html.elements.form.enctype 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.method 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.name 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.form.novalidate 📋Chrome Android6/27/2012 Safari3/27/20171734
html.elements.form.rel 📋Safari3/14/2022 Chrome Android11/29/2022260
html.elements.form.target 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.frameborder Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.marginheight Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.marginwidth Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.name Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.noresize Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.scrolling Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frame.src Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frameset 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frameset.cols Safari10/26/2007 Chrome Android6/27/20121706
html.elements.frameset.rows Safari10/26/2007 Chrome Android6/27/20121706
html.elements.h1 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.h2 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.h3 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.h4 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.h5 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.h6 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.head 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.header 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.hgroup 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.hr 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.hr.align Safari6/8/2009 Chrome Android6/27/20121115
html.elements.hr.color Chrome Android2/26/2014 Safari3/27/20171125
html.elements.hr.noshade Safari6/8/2009 Chrome Android6/27/20121115
html.elements.hr.size Safari6/8/2009 Chrome Android6/27/20121115
html.elements.hr.width Safari6/8/2009 Chrome Android6/27/20121115
html.elements.html 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.html.version 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.html.xmlns Safari6/23/2003 Chrome Android6/27/20123292
html.elements.i 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.iframe 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: The resize CSS property doesn't have any effect on this element due to bug 680823.Firefox for Android: The resize CSS property doesn't have any effect on this element due to bug 680823.Safari: Safari has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.Safari on iOS: Safari on iOS has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.WebView on iOS: WebView on iOS has a bug that prevents iframes from loading if the iframe element was hidden when added to the page. iframeElement.src = iframeElement.src should cause it to load the iframe.
html.elements.iframe.align 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.allow 📋Chrome Android8/1/2017 Safari4/12/2018254
html.elements.iframe.allow.camera 📋Chrome Android1/23/2018 Safari4/12/201879
html.elements.iframe.allow.display-capture 📋Safari9/19/2019 Chrome Android9/21/2021733
html.elements.iframe.allow.microphone 📋Chrome Android1/23/2018 Safari4/12/201879
html.elements.iframe.allow.screen-wake-lock 📋Chrome Android7/27/2020 Safari3/27/2023973
html.elements.iframe.allowfullscreen 📋Chrome Android10/8/2014 Safari3/27/2017901
Safari on iOS: Only available on iPad, not on iPhone.Safari on iOS: Shows an overlay button which can not be disabled. Swiping down exits fullscreen mode, making it unsuitable for some use cases like games.WebView on iOS: Only available on iPad, not on iPhone.WebView on iOS: Shows an overlay button which can not be disabled. Swiping down exits fullscreen mode, making it unsuitable for some use cases like games.
html.elements.iframe.cross-origin-top-navigation-by-user-activation Chrome Android7/24/2018 Safari9/19/2019422
Chrome: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Chrome Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Edge: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Firefox: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Firefox for Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Quest Browser: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Opera: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Opera Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.Safari: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.Safari on iOS: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.Samsung Internet: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.WebView Android: If a top-navigation is blocked, users are prompted for permission to redirect, and an error is reported in the developer console.WebView on iOS: If a top-navigation is blocked, no redirect occurs, and an error is reported in the developer console.
html.elements.iframe.frameborder 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.height 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.loading 📋Chrome Android9/10/2019 Safari3/27/20231294
html.elements.iframe.longdesc 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.marginheight 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.marginwidth 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.name 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.referrerpolicy 📋Chrome Android6/8/2016 Safari9/16/20201561
html.elements.iframe.sandbox 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.iframe.sandbox.allow-downloads 📋Chrome Android5/19/2020 Safari9/18/20231217
html.elements.iframe.sandbox.allow-forms 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.iframe.sandbox.allow-modals 📋Chrome Android10/14/2015 Safari4/12/2018911
html.elements.iframe.sandbox.allow-popups 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.iframe.sandbox.allow-popups-to-escape-sandbox 📋Chrome Android10/14/2015 Safari4/12/2018911
html.elements.iframe.sandbox.allow-same-origin 📋Safari6/7/2010 Chrome Android6/27/2012751
Chrome: Chrome 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Chrome Android: Chrome Android 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Edge: Edge 79 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Quest Browser: Quest Browser 6.0 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Opera: Opera 57 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Opera Android: Opera Android 49 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Safari: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Safari on iOS: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.Samsung Internet: Samsung Internet 10.0 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.WebView Android: WebView Android 70 and earlier block script execution without allow-scripts, even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.WebView on iOS: Safari blocks script execution without allow-scripts even if allow-same-origin is set. For example, any bound handlers for click events of nodes inside an iframe throw an error for blocked script execution.
html.elements.iframe.sandbox.allow-scripts 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.iframe.sandbox.allow-storage-access-by-user-activation Safari4/12/2018 Chrome Android5/2/20231846
html.elements.iframe.sandbox.allow-top-navigation 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.iframe.sandbox.allow-top-navigation-by-user-activation 📋Chrome Android4/25/2017 Safari4/12/2018352
html.elements.iframe.scrolling 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.iframe.src 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.iframe.srcdoc 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.iframe.width 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.img.align 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.alt 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.aspect_ratio_computed_from_attributes Chrome Android12/17/2019 Safari9/20/2021643
Safari: Safari doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).Safari on iOS: Safari on iOS doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).WebView on iOS: WebView on iOS doesn't preserve space for images without a valid src, which may disrupt layouts that rely on lazy loading (see bug 224197).
html.elements.img.border 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.crossorigin 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.img.decoding 📋Chrome Android3/6/2018 Safari4/12/201837
html.elements.img.fetchpriority 📋Chrome Android4/26/2022 Safari12/11/2023594
html.elements.img.height 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.hspace 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.ismap 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.loading 📋Chrome Android9/10/2019 Safari3/14/2022916
html.elements.img.longdesc 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.name 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.referrerpolicy 📋Chrome Android6/8/2016 Safari9/16/20201561
html.elements.img.sizes 📋Chrome Android10/8/2014 Safari3/21/2016530
html.elements.img.src 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.img.srcset 📋Chrome Android4/2/2014 Safari10/16/2014197
html.elements.img.usemap 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.usemap.case_sensitive Chrome Android4/25/2017 Safari9/19/2017147
html.elements.img.vspace 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.img.width 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.input 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Before Firefox 89, manipulating the content of <input> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Firefox for Android: Before Firefox for Android 89, manipulating the content of <input> elements using Document.execCommand() commands requires workarounds (see bug 1220696).
html.elements.input.accept 📋Safari6/23/2003 Chrome Android6/27/20123292
Safari on iOS: Does not support audio/* MIME type. See bug 242110.WebView on iOS: Does not support audio/* MIME type. See bug 242110.
html.elements.input.align 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.alt 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.autocomplete 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.input.checked 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.dirname 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.input.disabled 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.form 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.formaction 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.formenctype 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.formmethod 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.formnovalidate 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.formtarget 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.max 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.maxlength 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.min 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.minlength 📋Chrome Android1/21/2015 Safari3/27/2017796
html.elements.input.multiple 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.input.name 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.pattern 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.placeholder 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.input.popovertarget 📋Chrome Android5/30/2023 Safari9/18/2023111
html.elements.input.popovertarget.implicit_anchor_reference 📋Chrome Android2/4/2025 Safari9/15/2025223
html.elements.input.popovertargetaction 📋Chrome Android5/30/2023 Safari9/18/2023111
html.elements.input.readonly 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.required 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.size 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.src 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.step 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.type_button 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_checkbox 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_color 📋Chrome Android2/27/2013 Safari3/25/20192217
Firefox for Android: Firefox for Android doesn't allow the user to choose a custom color, only one of the predefined ones.
html.elements.input.type_color.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_date 📋Chrome Android2/27/2013 Safari4/26/20212980
html.elements.input.type_date.disables_invalid_values_in_picker_ui Chrome Android2/27/2013 Safari4/26/20212980
html.elements.input.type_date.list 📋Chrome Android2/26/2014 Safari4/26/20212616
html.elements.input.type_datetime-local 📋Chrome Android2/27/2013 Safari4/26/20212980
Firefox: Only displays a date picker without a time picker, see bug 1726107 and bug 1726108.Firefox for Android: Only displays a date picker without a time picker, see bug 1726107 and bug 1726108.Safari: Safari only displays a date picker and does not display a time picker.
html.elements.input.type_email 📋Safari6/7/2010 Chrome Android6/27/2012751
Safari on iOS: Doesn't do validation, but instead offers a custom 'email' keyboard, which is designed to make entering email addresses easier.Safari on iOS: The custom 'email' keyboard does not provide a comma key, so users cannot enter multiple email addresses.Safari on iOS: Automatically applies a default style of opacity: 0.4 to disable textual <input> elements, including those of type 'email'. Other major browsers don't currently share this particular default style.WebView on iOS: Doesn't do validation, but instead offers a custom 'email' keyboard, which is designed to make entering email addresses easier.WebView on iOS: The custom 'email' keyboard does not provide a comma key, so users cannot enter multiple email addresses.WebView on iOS: Automatically applies a default style of opacity: 0.4 to disable textual <input> elements, including those of type 'email'. Other major browsers don't currently share this particular default style.
html.elements.input.type_email.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_file 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: You can set as well as get the value of HTMLInputElement.files in all modern browsers; this was most recently added to Firefox, in version 57 (see bug 1384030).
html.elements.input.type_hidden 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_image 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_number 📋Safari7/20/2011 Chrome Android6/27/2012343
Chrome: Prevents users from typing non-numeric content.Chrome Android: Prevents users from typing non-numeric content.Firefox: Allows users to type non-numeric content, with the value reflecting an empty string.Firefox for Android: Allows users to type non-numeric content, with the value reflecting an empty string.Quest Browser: Prevents users from typing non-numeric content.Opera: Prevents users from typing non-numeric content.Opera Android: Prevents users from typing non-numeric content.Safari: Allows users to type non-numeric content, with the value reflecting an empty string.Safari on iOS: Allows users to type non-numeric content, with the value reflecting an empty string.Samsung Internet: Prevents users from typing non-numeric content.WebView Android: Prevents users from typing non-numeric content.WebView on iOS: Allows users to type non-numeric content, with the value reflecting an empty string.
html.elements.input.type_number.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_password 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_radio 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_range 📋Safari3/18/2008 Chrome Android3/16/20173285
WebView Android: Pre-Chromium Android WebView recognizes the range type, but doesn't implement a range-specific control.
html.elements.input.type_range.list 📋Chrome Android3/16/2017 Safari3/25/2019739
html.elements.input.type_range.tick_marks Chrome Android5/31/2018 Safari3/25/2019298
html.elements.input.type_range.vertical_orientation Safari5/18/2023 Chrome Android4/16/2024334
Chrome: Vertical orientation available via the writing-mode property (see Creating vertical controls).Chrome: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Chrome Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Chrome Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Edge: Vertical orientation available by setting the writing-mode: bt-lr style on the input element.Firefox: Vertical orientation available via the writing-mode property (see Creating vertical controls).Firefox: Supported using the non-standard orient="vertical" attribute.Firefox for Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Firefox for Android: Supported using the non-standard orient="vertical" attribute.Internet Explorer: Vertical orientation available by setting the writing-mode: bt-lr style on the input element.Quest Browser: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Opera: Vertical orientation available via the writing-mode property (see Creating vertical controls).Opera: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Opera Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).Opera Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Safari: Vertical orientation available via the writing-mode property (see Creating vertical controls).Safari: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Safari on iOS: Vertical orientation available via the writing-mode property (see Creating vertical controls).Safari on iOS: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.Samsung Internet: Vertical orientation available via the writing-mode property (see Creating vertical controls).Samsung Internet: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.WebView Android: Vertical orientation available via the writing-mode property (see Creating vertical controls).WebView Android: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.WebView on iOS: Vertical orientation available via the writing-mode property (see Creating vertical controls).WebView on iOS: Vertical orientation available by setting the non-standard -webkit-appearance: slider-vertical style on the input element. You shouldn't use this, since it's proprietary, unless you include appropriate fallbacks for users of other browsers.
html.elements.input.type_reset 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Unlike other browsers, Firefox by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.Firefox for Android: Unlike other browsers, Firefox for Android by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.
html.elements.input.type_search 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.input.type_search.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_submit 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Unlike other browsers, Firefox by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.Firefox for Android: Unlike other browsers, Firefox for Android by default persists the dynamic disabled state of a <button> across page loads. Use the autocomplete attribute to control this feature.
html.elements.input.type_tel 📋Safari6/8/2009 Chrome Android6/27/20121115
Chrome: The field type doesn't demonstrate any special behavior.Safari: The field type doesn't demonstrate any special behavior.
html.elements.input.type_tel.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_text 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_text.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.type_time 📋Chrome Android2/27/2013 Safari4/26/20212980
html.elements.input.type_time.list 📋Chrome Android2/26/2014 Safari4/26/20212616
html.elements.input.type_url 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.type_url.list 📋Chrome Android2/26/2014 Safari3/25/20191853
html.elements.input.usemap 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.input.webkitdirectory Safari4/12/2018 Chrome Android1/14/20252469
Chrome Android: In Chrome for Android 131, choosing a directory crashes the browser (see bug 376834374).Chrome Android: Before version 131, users cannot choose a directory, only individual files (see bug 40248532.Safari on iOS: Before version 18.4, the attribute can be set but users cannot choose a directory, only individual files (see bug 271705).WebView Android: In Chrome for Android 131, choosing a directory crashes the browser (see bug 376834374).WebView Android: Before version 131, users cannot choose a directory, only individual files (see bug 40248532.WebView on iOS: Before version 18.4, the attribute can be set but users cannot choose a directory, only individual files (see bug 271705).
html.elements.ins 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.ins.cite Safari10/26/2007 Chrome Android6/27/20121706
html.elements.ins.datetime Safari10/26/2007 Chrome Android6/27/20121706
html.elements.kbd 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, creating a <kbd> element incorrectly resulted in an HTMLSpanElement object, instead of the expected HTMLElement.
html.elements.label 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.label.for 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.legend 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.legend.align Safari6/8/2009 Chrome Android6/27/20121115
html.elements.li 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.li.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.li.value 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.as 📋Chrome Android4/13/2016 Safari9/20/2016160
html.elements.link.blocking 📋Chrome Android9/2/2022 Safari12/11/2024831
html.elements.link.charset 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.crossorigin 📋Chrome Android4/2/2014 Safari9/20/2016902
Firefox: Before Firefox 83, crossorigin is not supported for rel="icon".Firefox for Android: Before Firefox for Android 83, crossorigin is not supported for rel="icon".
html.elements.link.disabled 📋Safari6/8/2009 Chrome Android6/27/20121115
Chrome: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Chrome Android: In Chrome Android and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Edge: Since Edge 79, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Quest Browser: In Quest Browser and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Opera: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Opera Android: In Chrome and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.Samsung Internet: In Samsung Internet and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.WebView Android: In WebView Android and other Blink-based browsers, adding the disabled attribute using JavaScript does not remove the stylesheet from document.styleSheets.
html.elements.link.fetchpriority 📋Chrome Android4/26/2022 Safari12/11/2023594
html.elements.link.href 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.hreflang 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.imagesizes 📋Chrome Android3/12/2019 Safari12/11/20231735
html.elements.link.imagesrcset 📋Chrome Android3/12/2019 Safari12/11/20231735
html.elements.link.integrity 📋Chrome Android9/1/2015 Safari4/12/2018954
html.elements.link.media 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.referrerpolicy 📋Chrome Android6/8/2016 Safari9/16/20201561
html.elements.link.rel 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.link.rel.dns-prefetch 📋Safari6/7/2010 Chrome Android10/14/20151955
Firefox: Only HTTP pages were supported.Firefox for Android: Only HTTP pages were supported.
html.elements.link.rel.icon Safari3/18/2008 Chrome Android6/27/20121562
Chrome: If both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.).Edge: In version 79 and later (Blink-based Edge), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)Firefox: Before Firefox 83, the crossorigin attribute is not supported for rel="icon".Firefox: The media attribute is not supported for rel="icon", see bug 1603885.Opera: In version 15 and later (Blink-based Opera), if both ICO and PNG are available, will use ICO over PNG if ICO has better matching sizes set. (Per caniuse.com.)Safari: If both ICO and PNG are available, will ALWAYS use ICO file, regardless of sizes set. (Per caniuse.com.)Safari on iOS: Does not use favicons at all (but may have alternative for bookmarks, etc.). (Per caniuse.com.)WebView on iOS: Does not use favicons at all (but may have alternative for bookmarks, etc.). (Per caniuse.com.)
html.elements.link.rel.manifest 📋Chrome Android11/12/2014 Safari9/18/20233232
html.elements.link.rel.modulepreload 📋Chrome Android4/17/2018 Safari9/18/20231980
html.elements.link.rel.modulepreload.as-json 📋Safari12/12/2025 Chrome Android4/7/2026116
html.elements.link.rel.modulepreload.as-script 📋Chrome Android4/17/2018 Safari9/18/20231980
html.elements.link.rel.preconnect 📋Chrome Android10/14/2015 Safari4/12/2018911
Firefox: Before Firefox 41, it doesn't obey the crossorigin attribute.Firefox for Android: Before Firefox for Android 41, it doesn't obey the crossorigin attribute.
html.elements.link.rel.prefetch 📋Chrome Android6/27/2012 Safari3/24/20202827
Chrome: Requires secure contextChrome Android: Requires secure contextEdge: Requires secure contextFirefox: Requires secure contextFirefox for Android: Requires secure contextQuest Browser: Requires secure contextOpera: Requires secure contextOpera Android: Requires secure contextSamsung Internet: Requires secure contextWebView Android: Requires secure context
html.elements.link.rel.preload 📋Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-fetch Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-font Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-image Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-script Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-style Chrome Android4/13/2016 Safari4/12/2018729
Firefox: Disabled due to various web compatibility issues (e.g. bug 1405761).Firefox for Android: Disabled due to various web compatibility issues (e.g. bug 1405761).
html.elements.link.rel.preload.as-track Chrome Android4/13/2016 Safari4/12/2018729
html.elements.link.rev 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.sizes 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.link.target 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.link.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.main 📋Chrome Android4/3/2013 Safari10/22/2013202
html.elements.map 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Before Firefox 5, in Quirks Mode, empty maps were no longer skipped over in favor of non-empty ones when matching.Firefox: Before Firefox 17, the default styling of the <map> HTML element was display: block;. This is now display: inline; and matches the behavior of the other browsers. It was already the case in Quirks Mode.
html.elements.map.name Safari6/23/2003 Chrome Android6/27/20123292
html.elements.mark 📋Safari7/20/2011 Chrome Android6/27/2012343
html.elements.marquee 📋Safari2/2/2004 Chrome Android6/27/20123068
Firefox: Implements the HTMLDivElement interface.Firefox for Android: Implements the HTMLDivElement interface.
html.elements.marquee.behavior Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.bgcolor Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.direction Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.height Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.hspace Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.loop Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.scrollamount Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.scrolldelay Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.truespeed Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.vspace Safari2/2/2004 Chrome Android6/27/20123068
html.elements.marquee.width Safari2/2/2004 Chrome Android6/27/20123068
html.elements.menu 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.meta 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.meta.charset 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.meta.content 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.meta.http-equiv 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.meta.http-equiv.content-language 📋Safari3/27/2017 Chrome Android6/6/201771
html.elements.meta.http-equiv.content-security-policy 📋Safari3/27/2017 Chrome Android6/6/201771
html.elements.meta.http-equiv.content-type 📋Safari3/27/2017 Chrome Android6/6/201771
html.elements.meta.http-equiv.refresh 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.meta.name 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.meta.name.color-scheme 📋Safari3/25/2019 Chrome Android4/7/2020379
html.elements.meta.name.referrer 📋Chrome Android6/27/2012 Safari4/12/20182115
Chrome: Until Chrome 46, content values weren't constrained to the values listed in the spec.Chrome Android: Until Chrome Android 46, content values weren't constrained to the values listed in the spec.Firefox: The referrer value wasn't taken into account when navigation was happening via the context menu or middle click until Firefox 39.Firefox for Android: The referrer value wasn't taken into account when navigation was happening via the context menu or middle click until Firefox for Android 39.Internet Explorer: Browsers initially supported an early draft of the specification which can only use a meta tag and is only compatible with the origin value from the new spec.Quest Browser: Until Quest Browser 5.0, content values weren't constrained to the values listed in the spec.Opera: Until Opera 33, content values weren't constrained to the values listed in the spec.Opera Android: Until Opera Android 33, content values weren't constrained to the values listed in the spec.Samsung Internet: Until Samsung Internet 5.0, content values weren't constrained to the values listed in the spec.WebView Android: Until WebView Android 46, content values weren't constrained to the values listed in the spec.
html.elements.meta.name.theme-color 📋Chrome Android7/20/2021 Safari9/20/202162
Chrome: Chrome uses the color only on installed progressive web apps.Chrome: Chrome reports support, but does not actually use the color anywhere.Chrome Android: Chrome for Android does not use the color on devices with native dark mode enabled unless it's an installed progressive web app or a trusted web activity.Edge: Edge uses the color only on installed progressive web apps.Quest Browser: Chrome for Android does not use the color on devices with native dark mode enabled unless it's an installed progressive web app or a trusted web activity.
html.elements.meta.scheme 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.meter 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.high 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.low 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.max 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.min 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.optimum 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.meter.value 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.nav 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.nobr 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.noembed 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.noframes 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.noscript 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.archive 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.border 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.classid 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.codetype 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.data 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.declare 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.form 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.height 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.name 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.standby 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.type 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.usemap 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.object.width 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.ol 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.ol.compact Safari10/26/2007 Chrome Android6/27/20121706
html.elements.ol.reversed 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.ol.start 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.ol.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.optgroup 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.optgroup.disabled 📋Chrome Android6/27/2012 Safari10/22/2013482
Safari: Before Safari 7, the attribute can be set, but has no effect.Safari on iOS: The attribute can be set, but has no effect.WebView on iOS: The attribute can be set, but has no effect.
html.elements.optgroup.label 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.option 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.option.disabled 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.option.label 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before 77, Firefox didn't display the value of the label attribute as option text if element's content was empty. See bug 40545.Firefox: Historically, Firefox has allowed keyboard and mouse events to bubble up from the <option> element to the parent <select> element, although this behavior is inconsistent across many browsers. For better Web compatibility (and for technical reasons), they will not bubble up when Firefox is in multi-process mode and the <select> element is displayed as a drop-down list. The behavior is unchanged if the <select> is presented inline and it has either the multiple attribute defined or a size attribute set to more than 1. Rather than watching <option> elements for events, you should watch for change events on <select>. See bug 1090602 for details.Firefox: When Mozilla introduced dedicated content threads to Firefox (through the Electrolysis, or e10s, project), support for styling <option> elements was removed temporarily. Starting in Firefox 54, you can apply foreground and background colors to <option> elements again, using the color and background-color CSS properties. See bug 910022 for more information. Note that this is still disabled in Linux due to lack of contrast (see bug 1338283 for progress on this).Firefox for Android: Before 77, Firefox didn't display the value of the label attribute as option text if element's content was empty. See bug 40545.
html.elements.option.selected 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.option.value 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.output 📋Chrome Android6/27/2012 Safari10/22/2013482
html.elements.output.for 📋Chrome Android6/27/2012 Safari10/22/2013482
html.elements.output.form 📋Chrome Android6/27/2012 Safari10/22/2013482
html.elements.output.name 📋Chrome Android6/27/2012 Safari10/22/2013482
html.elements.p 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.param 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.param.name Safari6/8/2009 Chrome Android6/27/20121115
html.elements.param.type Safari6/8/2009 Chrome Android6/27/20121115
html.elements.param.value Safari6/8/2009 Chrome Android6/27/20121115
html.elements.param.valuetype Safari6/8/2009 Chrome Android6/27/20121115
html.elements.picture 📋Chrome Android10/8/2014 Safari3/21/2016530
html.elements.plaintext 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.pre 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.pre.width Safari10/26/2007 Chrome Android6/27/20121706
Chrome: Specifying the width attribute has no layout effect.Chrome Android: Specifying the width attribute has no layout effect.Edge: Specifying the width attribute has no layout effect.Firefox: Since Firefox 29, specifying the width attribute has no layout effect.Firefox for Android: Since Firefox for Android 29, specifying the width attribute has no layout effect.Internet Explorer: Specifying the width attribute has no layout effect.Quest Browser: Specifying the width attribute has no layout effect.Opera: Specifying the width attribute has no layout effect.Opera Android: Specifying the width attribute has no layout effect.Safari: Specifying the width attribute has no layout effect.Safari on iOS: Specifying the width attribute has no layout effect.Samsung Internet: Specifying the width attribute has no layout effect.WebView Android: Specifying the width attribute has no layout effect.WebView on iOS: Specifying the width attribute has no layout effect.
html.elements.progress 📋Chrome Android6/27/2012 Safari7/25/201228
Firefox: Before Firefox 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed.Firefox: Firefox provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.Firefox for Android: Before Firefox for Android 14, the <progress> element was incorrectly classified as a form element, and therefore had a form attribute. This has been fixed.Firefox for Android: Firefox for Android provides the ::-moz-progress-bar pseudo-element, which lets you style the part of the interior of the progress bar representing the amount of work completed so far.Safari on iOS: Safari on iOS does not support indeterminate progress bars (they are rendered like 0%-completed progress bars).WebView on iOS: WebView on iOS does not support indeterminate progress bars (they are rendered like 0%-completed progress bars).
html.elements.progress.max 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.progress.value 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.q 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.q.cite 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.rb 📋Safari6/7/2010 Chrome Android6/27/2012751
Chrome: Blink has support for parsing the rb element, but not for rendering rb content as expected.Chrome Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.Edge: Blink has support for parsing the rb element, but not for rendering rb content as expected.Quest Browser: Blink has support for parsing the rb element, but not for rendering rb content as expected.Opera: Blink has support for parsing the rb element, but not for rendering rb content as expected.Opera Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.Safari: Safari has support for parsing the rb element, but not for rendering rb content as expected.Safari on iOS: Safari on iOS has support for parsing the rb element, but not for rendering rb content as expected.Samsung Internet: Blink has support for parsing the rb element, but not for rendering rb content as expected.WebView Android: Blink has support for parsing the rb element, but not for rendering rb content as expected.WebView on iOS: WebView on iOS has support for parsing the rb element, but not for rendering rb content as expected.
html.elements.rp 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.rt 📋Safari6/7/2010 Chrome Android6/27/2012751
Chrome: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Chrome Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Quest Browser: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Opera: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Opera Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.Safari: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.Safari on iOS: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.Samsung Internet: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.WebView Android: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 347597919.WebView on iOS: Nested <rt> elements do not render correctly due to missing display: ruby-text styling. See bug 265316.
html.elements.rtc 📋Safari10/16/2014 Chrome Android12/2/2015412
html.elements.ruby 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.s 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.samp 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.script 📋Safari10/26/2007 Chrome Android6/27/20121706
Firefox: Starting in Firefox 4, inserting <script> elements that have been created by calling document.createElement("script") no longer enforces execution in insertion order. This change lets Firefox properly abide by the specification. To make script-inserted external scripts execute in their insertion order, set .async=false on them.
html.elements.script.async 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.script.blocking 📋Chrome Android9/2/2022 Safari12/11/2024831
html.elements.script.crossorigin 📋Safari7/25/2012 Chrome Android2/27/2013217
Safari: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.Safari on iOS: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.WebView on iOS: The crossorigin attribute was implemented in WebKit in WebKit bug 81438.
html.elements.script.defer 📋Safari10/26/2007 Chrome Android6/27/20121706
Chrome: Chrome does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Chrome Android: Chrome Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Firefox: Since Firefox 3.6, the defer attribute is ignored on scripts that don't have the src attribute. However, in Firefox 3.5 even inline scripts are deferred if the defer attribute is set.Internet Explorer: Before version 10, Internet Explorer implemented defer by a proprietary specification. Since version 10 it conforms to the W3C specification.Quest Browser: Quest Browser does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Opera: Opera does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Opera Android: Opera Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348Samsung Internet: Samsung Internet does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348WebView Android: WebView Android does not defer scripts with the defer attribute when the page is served as XHTML (application/xhtml+xml), see bug 41253514 and bug 41408348
html.elements.script.fetchpriority 📋Chrome Android4/26/2022 Safari12/11/2023594
html.elements.script.integrity 📋Chrome Android9/1/2015 Safari4/12/2018954
html.elements.script.nomodule 📋Chrome Android9/5/2017 Safari9/19/201714
html.elements.script.referrerpolicy 📋Chrome Android10/17/2018 Safari9/16/2020700
html.elements.script.src 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.script.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.script.type.importmap 📋Chrome Android3/2/2021 Safari3/27/2023755
html.elements.script.type.importmap.integrity 📋Chrome Android7/23/2024 Safari9/16/202455
html.elements.script.type.importmap.multiple_import_maps 📋Chrome Android2/4/2025 Safari3/31/202555
html.elements.script.type.module Safari3/27/2017 Chrome Android9/5/2017162
Chrome: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Chrome Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Edge: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Quest Browser: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Opera: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Opera Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.Safari: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).Safari on iOS: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).Samsung Internet: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.WebView Android: Module scripts without the async attribute do not load when the page is served as XHTML (application/xhtml+xml). See bug 40518469.WebView on iOS: Module scripts do not load when the page is served as XHTML (application/xhtml+xml).
html.elements.script.type.speculationrules 📋Chrome Android1/10/2023 Safari12/12/20251067
Chrome: Initial support included same-origin prerendering only.Chrome Android: Initial support included same-origin prerendering only.Edge: Initial support included same-origin prerendering only.Quest Browser: Initial support included same-origin prerendering only.Opera: Initial support included same-origin prerendering only.Opera Android: Initial support included same-origin prerendering only.Samsung Internet: Initial support included same-origin prerendering only.WebView Android: Initial support included same-origin prerendering only.
html.elements.script.type.speculationrules.eagerness 📋Chrome Android1/23/2024 Safari12/12/2025689
Safari: Only conservative is supported for document rules (though moderate automatically falls back to conservative). Only eager and immediate is supported for list rules.Safari on iOS: Only conservative is supported for document rules (though moderate automatically falls back to conservative). Only eager and immediate is supported for list rules.
html.elements.script.type.speculationrules.prefetch 📋Chrome Android6/21/2022 Safari12/12/20251270
html.elements.script.type.speculationrules.referrer_policy 📋Chrome Android3/7/2023 Safari12/12/20251011
html.elements.script.type.speculationrules.relative_to 📋Chrome Android1/23/2024 Safari12/12/2025689
html.elements.script.type.speculationrules.source_optional 📋Chrome Android2/20/2024 Safari12/12/2025661
html.elements.script.type.speculationrules.tag 📋Chrome Android4/29/2025 Safari12/12/2025227
html.elements.script.type.speculationrules.urls 📋Chrome Android6/21/2022 Safari12/12/20251270
html.elements.script.type.speculationrules.where 📋Chrome Android1/23/2024 Safari12/12/2025689
html.elements.search 📋Safari9/18/2023 Chrome Android10/10/202322
html.elements.section 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.select 📋Safari6/23/2003 Chrome Android6/27/20123292
Chrome: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Chrome Android: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Firefox: Historically, Firefox has allowed keyboard and mouse events to bubble up from the <option> element to the parent <select> element, although this behavior is inconsistent across many browsers. For better Web compatibility (and for technical reasons), when Firefox is in multi-process mode the <select> element is displayed as a drop-down list. The behavior is unchanged if the <select> is presented inline and it has either the multiple attribute defined or a size attribute set to more than 1. Rather than watching <option> elements for events, you should watch for change events on <select>. See bug 1090602 for details.Firefox for Android: Firefox for Android, by default, sets a background-image gradient on all <select multiple> elements. This can be disabled using background-image: none.Quest Browser: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Safari: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Safari on iOS: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.Samsung Internet: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.WebView Android: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.WebView on iOS: border-radius on <select> elements is ignored unless -webkit-appearance is overridden to an appropriate value.
html.elements.select.autocomplete 📋Safari3/21/2016 Chrome Android4/17/2018757
html.elements.select.disabled 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.select.form 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.select.multiple 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.select.name 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.select.required 📋Safari7/20/2011 Chrome Android6/27/2012343
html.elements.slot 📋Chrome Android9/7/2016 Safari9/20/201613
html.elements.slot.name Chrome Android9/7/2016 Safari9/20/201613
html.elements.small 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.source 📋Safari3/18/2008 Chrome Android6/27/20121562
Firefox: Until Firefox 15, Firefox picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.Firefox for Android: Until Firefox for Android 15, Firefox for Android picked the first source element that has a type matching the MIME-type of a supported media format; see bug 449363 for details.
html.elements.source.height 📋Chrome Android4/13/2021 Safari9/20/2021160
html.elements.source.media 📋Safari3/18/2008 Chrome Android6/27/20121562
Firefox: media is supported in <source> within <picture>, <audio>, and <video>. In Firefox 53-119, media is supported only in <source> within <picture>.Firefox for Android: media is supported in <source> within <picture>, <audio>, and <video>. In Firefox for Android 53-119, media is supported only in <source> within <picture>.
html.elements.source.sizes 📋Chrome Android10/8/2014 Safari3/21/2016530
Chrome: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Chrome Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Samsung Internet: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).WebView Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).
html.elements.source.src 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.source.srcset 📋Chrome Android10/8/2014 Safari3/21/2016530
Chrome: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Chrome Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Opera Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).Samsung Internet: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).WebView Android: Supports a subset of the syntax for resolution switching (using the x descriptor), but not the full syntax that can be used with sizes (using the w descriptor).
html.elements.source.type 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.source.width 📋Chrome Android4/13/2021 Safari9/20/2021160
html.elements.span 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.strike 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.strong 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, creating a <strong> element incorrectly resulted in an HTMLSpanElement object, instead of the expected HTMLElement.
html.elements.style 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.style.blocking 📋Chrome Android9/2/2022 Safari12/11/2024831
html.elements.style.media 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.style.type 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Before 75, Firefox accepted any CSS media (MIME) type, with optional parameters. Starting in 75, this has been restricted to the string 'text/css', per the spec.
html.elements.sub 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.summary 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.sup 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.table 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.align Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.border Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.cellpadding Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.cellspacing Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.frame Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.rules Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.summary Safari6/23/2003 Chrome Android6/27/20123292
html.elements.table.width Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tbody 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tbody.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.tbody.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tbody.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.td 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.abbr Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.td.axis Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.colspan Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.headers Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.rowspan Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.scope Safari6/23/2003 Chrome Android6/27/20123292
html.elements.td.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.td.width Safari6/23/2003 Chrome Android6/27/20123292
html.elements.template 📋Chrome Android4/3/2013 Safari10/16/2014561
html.elements.template.shadowrootclonable 📋Chrome Android4/16/2024 Safari5/13/202427
html.elements.template.shadowrootdelegatesfocus 📋Safari3/27/2023 Chrome Android3/19/2024358
html.elements.template.shadowrootmode 📋Chrome Android3/7/2023 Safari3/27/202320
html.elements.template.shadowrootreferencetarget Chrome Android2/4/2025 Safari9/15/2025223
html.elements.template.shadowrootserializable 📋Chrome Android5/14/2024 Safari9/16/2024125
html.elements.textarea 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 6, when a <textarea> was focused, the insertion point was placed at the end of the text by default. Other major browsers place the insertion point at the beginning of the text.Firefox: A default background-image gradient is applied to all <textarea> elements, which can be disabled using background-image: none.Firefox: Before Firefox 89, manipulating the content of <textarea> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Firefox for Android: Before Firefox for Android 6, when a <textarea> was focused, the insertion point was placed at the end of the text by default. Other major browsers place the insertion point at the beginning of the text.Firefox for Android: A default background-image gradient is applied to all <textarea> elements, which can be disabled using background-image: none.Firefox for Android: Before Firefox for Android 89, manipulating the content of <textarea> elements using Document.execCommand() commands requires workarounds (see bug 1220696).Safari on iOS: Unlike other major browsers, a default style of opacity: 0.4 is applied to disabled <textarea> elements.WebView on iOS: Unlike other major browsers, a default style of opacity: 0.4 is applied to disabled <textarea> elements.
html.elements.textarea.autocomplete 📋Safari3/21/2016 Chrome Android4/17/2018757
html.elements.textarea.autocomplete.one-time-code Safari9/17/2018 Chrome Android7/27/2020679
html.elements.textarea.cols 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.dirname 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.textarea.disabled 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.form 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.maxlength 📋Safari6/7/2010 Chrome Android6/27/2012751
Safari: Before Safari 17, newline characters counted as two characters instead of one. See bug 249916.Safari on iOS: Before Safari on iOS 17, newline characters counted as two characters instead of one. See bug 249916.WebView on iOS: Before WebView on iOS 17, newline characters counted as two characters instead of one. See bug 249916.
html.elements.textarea.minlength 📋Chrome Android1/21/2015 Safari3/27/2017796
html.elements.textarea.name 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.placeholder 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.textarea.placeholder.line_breaks Chrome Android7/16/2014 Safari9/12/20222980
html.elements.textarea.readonly 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.required 📋Safari6/7/2010 Chrome Android6/27/2012751
html.elements.textarea.rows 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.textarea.wrap 📋Chrome Android6/27/2012 Safari7/25/201228
html.elements.tfoot 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tfoot.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.tfoot.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tfoot.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.th 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.abbr Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.th.axis Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.colspan Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.headers Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.rowspan Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.scope Safari6/23/2003 Chrome Android6/27/20123292
html.elements.th.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.th.width Safari6/23/2003 Chrome Android6/27/20123292
html.elements.thead 📋Safari6/23/2003 Chrome Android6/27/20123292
Safari: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.Safari on iOS: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.WebView on iOS: Backgrounds applied to <thead> elements will be applied to each table cell, rather than the entire header. To mimic the behavior of other browsers, set the background-attachment CSS property to fixed.
html.elements.thead.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.thead.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.thead.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.time 📋Safari10/22/2013 Chrome Android10/24/20171463
html.elements.time.datetime Safari10/22/2013 Chrome Android10/24/20171463
html.elements.title 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tr 📋Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tr.align Safari10/26/2007 Chrome Android6/27/20121706
html.elements.tr.bgcolor Safari6/23/2003 Chrome Android6/27/20123292
html.elements.tr.valign Safari10/26/2007 Chrome Android6/27/20121706
html.elements.track 📋Safari7/25/2012 Chrome Android2/27/2013217
Chrome Android: Doesn't work for fullscreen video.Quest Browser: Doesn't work for fullscreen video.Samsung Internet: Doesn't work for fullscreen video.WebView Android: Doesn't work for fullscreen video.
html.elements.track.default 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.track.kind 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.track.label 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.track.src 📋Safari7/25/2012 Chrome Android2/27/2013217
Firefox: Before Firefox 50, setting the src didn't work, though it didn't raise an error.Firefox for Android: Before Firefox for Android 50, setting the src didn't work, though it didn't raise an error.
html.elements.track.srclang 📋Safari7/25/2012 Chrome Android2/27/2013217
html.elements.tt 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.u 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.elements.ul 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.ul.compact 📋Safari10/26/2007 Chrome Android6/27/20121706
html.elements.ul.type 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.var 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.video 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.aspect_ratio_computed_from_attributes Chrome Android12/17/2019 Safari9/16/2020274
html.elements.video.autoplay 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.autoplay.requires_muted_audio Chrome Android5/31/2018 Safari9/12/20221565
Firefox for Android: Between versions 79 and 91, the default behavior was to block videos from autoplaying, regardless of whether audio was muted.
html.elements.video.controls 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.crossorigin 📋Chrome Android2/26/2014 Safari9/20/2016937
Firefox: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.Firefox for Android: With crossorigin="use-credentials", cookies aren't sent during seek. See bug 1532722.
html.elements.video.disablepictureinpicture 📋Safari3/24/2020 Chrome Android9/2/2022892
Firefox: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox for Android: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.Firefox for Android: When this attribute is set, the overlay button to disable picture-in-picture (PiP) is hidden, but the user can still enable PiP.
html.elements.video.disableremoteplayback 📋Chrome Android2/1/2017 Safari3/24/20201147
html.elements.video.height 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.loop 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.muted 📋Safari6/7/2010 Chrome Android10/2/20131213
html.elements.video.playsinline 📋Safari9/20/2016 Chrome Android6/4/2019987
html.elements.video.poster 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.preload 📋Safari3/18/2008 Chrome Android6/27/20121562
Chrome: Defaults to metadata in Chrome 64.Chrome Android: Defaults to metadata in Chrome Android 64.Quest Browser: Defaults to metadata in Quest Browser 5.0.Opera: Defaults to metadata in Opera 51.Opera Android: Defaults to metadata in Opera Android 47.Samsung Internet: Defaults to metadata in Samsung Internet 9.0.WebView Android: Defaults to metadata in WebView Android 64.
html.elements.video.src 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.video.width 📋Safari3/18/2008 Chrome Android6/27/20121562
html.elements.wbr 📋Safari6/8/2009 Chrome Android6/27/20121115
html.elements.xmp 📋Safari6/8/2009 Chrome Android6/27/20121115
Firefox: Before Firefox 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.Firefox for Android: Before Firefox for Android 4, this element implemented the HTMLSpanElement interface instead of the standard HTMLElement interface.
html.global_attributes.accesskey 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.autofocus 📋Chrome Android12/17/2019 Safari3/14/2022818
Chrome: Supported for the <button>, <input>, <select>, and <textarea> elements.Chrome Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Edge: Supported for the <button>, <input>, <select>, and <textarea> elements.Firefox: Supported for the <button>, <input>, <select>, and <textarea> elements.Firefox for Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Internet Explorer: Supported for the <button>, <input>, <select>, and <textarea> elements.Quest Browser: Supported for the <button>, <input>, <select>, and <textarea> elements.Opera: Supported for the <button>, <input>, <select>, and <textarea> elements.Opera Android: Supported for the <button>, <input>, <select>, and <textarea> elements.Safari: Supported for the <button>, <input>, <select>, and <textarea> elements.Safari on iOS: If there's no hardware keyboard connected, then the autofocus attribute has no effect (for example, the focus event doesn't fire and the element does not match the :focus selector).Samsung Internet: Supported for the <button>, <input>, <select>, and <textarea> elements.WebView Android: Supported for the <button>, <input>, <select>, and <textarea> elements.WebView on iOS: If there's no hardware keyboard connected, then the autofocus attribute has no effect (for example, the focus event doesn't fire and the element does not match the :focus selector).
html.global_attributes.class 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.contenteditable 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.contenteditable.plaintext-only Safari6/7/2010 Chrome Android6/8/20162193
html.global_attributes.data_attributes 📋Safari7/20/2011 Chrome Android6/27/2012343
html.global_attributes.dir 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.draggable 📋Safari6/7/2010 Chrome Android6/27/2012751
html.global_attributes.enterkeyhint 📋Chrome Android9/10/2019 Safari3/24/2020196
html.global_attributes.exportparts 📋Chrome Android3/12/2019 Safari3/24/2020378
html.global_attributes.hidden 📋Safari7/20/2011 Chrome Android6/27/2012343
Safari: This attribute has no effect on <option> elements.Safari on iOS: This attribute has no effect on <option> elements.WebView on iOS: This attribute has no effect on <option> elements.
html.global_attributes.hidden.until-found 📋Chrome Android5/24/2022 Safari12/12/20251298
Firefox: The browser does not correctly scroll to the matching text. See bug 2006040.Firefox for Android: The browser does not correctly scroll to the matching text. See bug 2006040.Safari: The browser does not correctly scroll to the matching text. See bug 304174.Safari on iOS: The browser does not correctly scroll to the matching text. See bug 304174.WebView on iOS: The browser does not correctly scroll to the matching text. See bug 304174.
html.global_attributes.id 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: id is a true global attribute only since Firefox 32.Firefox for Android: id is a true global attribute only since Firefox for Android 32.
html.global_attributes.inert 📋Safari5/16/2022 Chrome Android5/24/20228
html.global_attributes.inputmode 📋Chrome Android4/17/2018 Safari3/25/2019342
Safari on iOS: Before iOS 13, inputmode="none" had no effect.WebView on iOS: Before iOS 13, inputmode="none" had no effect.
html.global_attributes.lang 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.nonce 📋Chrome Android9/5/2017 Safari5/16/20221714
Firefox: Firefox does not prevent nonce exfiltration through content attributes.Firefox for Android: Firefox for Android does not prevent nonce exfiltration through content attributes.Safari: Safari does not prevent nonce exfiltration through content attributes.Safari on iOS: Safari on iOS does not prevent nonce exfiltration through content attributes.WebView on iOS: WebView on iOS does not prevent nonce exfiltration through content attributes.
html.global_attributes.part 📋Chrome Android3/12/2019 Safari3/24/2020378
html.global_attributes.popover 📋Chrome Android5/30/2023 Safari9/18/2023111
html.global_attributes.slot 📋Chrome Android9/7/2016 Safari9/20/201613
html.global_attributes.spellcheck 📋Safari7/20/2011 Chrome Android12/2/20151596
Chrome Android: Only supported on <textarea>.Firefox for Android: Only supported on <textarea>.Opera Android: Only supported on <textarea>.Safari on iOS: Only supported on <textarea>.Samsung Internet: Only supported on <textarea>.WebView Android: Only supported on <textarea>.WebView on iOS: Only supported on <textarea>.
html.global_attributes.style 📋Safari6/23/2003 Chrome Android6/27/20123292
html.global_attributes.tabindex 📋Safari3/18/2008 Chrome Android6/27/20121562
html.global_attributes.title 📋Safari6/8/2009 Chrome Android6/27/20121115
html.global_attributes.title.multi-line_titles Safari9/19/2017 Chrome Android1/23/2018126
html.global_attributes.translate 📋Safari7/25/2012 Chrome Android2/27/2013217
html.global_attributes.writingsuggestions 📋Chrome Android4/16/2024 Safari9/16/2024153

JS Data

API First Browser Date Last Browser Date Days Notes
javascript.builtins.AggregateError 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.builtins.AggregateError.AggregateError 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.builtins.AggregateError.errors 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.builtins.AggregateError.serializable_object Chrome Android2/1/2022 Safari9/18/2023594
Chrome: AggregateError serializes to the Error type, without additional properties.Chrome Android: AggregateError serializes to the Error type, without additional properties.Edge: AggregateError serializes to the Error type, without additional properties.Firefox: AggregateError serializes to the AggregateError type, with properties name, message, cause, and errors.Firefox for Android: AggregateError serializes to the AggregateError type, with properties name, message, cause, and errors.Quest Browser: AggregateError serializes to the Error type, without additional properties.Opera: AggregateError serializes to the Error type, without additional properties.Opera Android: AggregateError serializes to the Error type, without additional properties.Samsung Internet: AggregateError serializes to the Error type, without additional properties.WebView Android: AggregateError serializes to the Error type, without additional properties.
javascript.builtins.Array 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.@@iterator 📋Chrome Android10/8/2014 Safari9/20/2016713
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.Array.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.Array.@@unscopables 📋Chrome Android10/8/2014 Safari9/20/2016713
javascript.builtins.Array.Array 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.at 📋Chrome Android7/20/2021 Safari3/14/2022237
javascript.builtins.Array.concat 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.copyWithin 📋Chrome Android9/1/2015 Safari9/30/201529
javascript.builtins.Array.entries 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Array.every 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.fill 📋Safari10/16/2014 Chrome Android9/1/2015320
javascript.builtins.Array.filter 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.find 📋Safari10/16/2014 Chrome Android9/1/2015320
javascript.builtins.Array.findIndex 📋Safari10/16/2014 Chrome Android9/1/2015320
javascript.builtins.Array.findLast 📋Chrome Android1/4/2022 Safari3/14/202269
javascript.builtins.Array.findLastIndex 📋Chrome Android1/4/2022 Safari3/14/202269
javascript.builtins.Array.flat 📋Chrome Android9/4/2018 Safari9/17/201813
javascript.builtins.Array.flatMap 📋Chrome Android9/4/2018 Safari9/17/201813
javascript.builtins.Array.forEach 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.from 📋Chrome Android9/1/2015 Safari9/30/201529
javascript.builtins.Array.fromAsync 📋Safari3/27/2023 Chrome Android1/23/2024302
javascript.builtins.Array.includes 📋Safari9/30/2015 Chrome Android12/2/201563
javascript.builtins.Array.indexOf 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.isArray 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Array.join 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.keys 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Array.lastIndexOf 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.length 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.map 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.of 📋Chrome Android11/12/2014 Safari9/30/2015322
javascript.builtins.Array.pop 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.push 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.reduce 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.Array.reduceRight 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.Array.reverse 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.shift 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.slice 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.some 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Array.sort 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.sort.stable_sorting Safari3/27/2017 Chrome Android10/17/2018569
javascript.builtins.Array.splice 📋Safari6/23/2003 Chrome Android6/27/20123292
Internet Explorer: From Internet Explorer 5.5 through 8, all elements of the array will not be deleted if deleteCount is omitted. This behavior was fixed in Internet Explorer 9.
javascript.builtins.Array.toLocaleString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.toLocaleString.locales_parameter Chrome Android2/27/2013 Safari10/22/2013237
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Array.toLocaleString.options_parameter Chrome Android2/27/2013 Safari10/22/2013237
javascript.builtins.Array.toReversed 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.Array.toSorted 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.Array.toSpliced 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.Array.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.unshift 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Array.values 📋Safari9/30/2015 Chrome Android4/17/2018930
javascript.builtins.Array.with 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.ArrayBuffer 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.ArrayBuffer.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.ArrayBuffer.ArrayBuffer 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.ArrayBuffer.ArrayBuffer.maxByteLength_option 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.ArrayBuffer.byteLength 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.ArrayBuffer.detached 📋Chrome Android5/30/2023 Safari3/5/2024280
javascript.builtins.ArrayBuffer.isView 📋Safari10/22/2013 Chrome Android1/15/201485
javascript.builtins.ArrayBuffer.maxByteLength 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.ArrayBuffer.resizable 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.ArrayBuffer.resize 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.ArrayBuffer.slice 📋Safari7/20/2011 Chrome Android6/27/2012343
Firefox: The non-standard ArrayBuffer.slice() method has been removed in Firefox 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.Firefox for Android: The non-standard ArrayBuffer.slice() method has been removed in Firefox for Android 53 (but the standardized version ArrayBuffer.prototype.slice() is kept.
javascript.builtins.ArrayBuffer.transfer 📋Chrome Android5/30/2023 Safari3/5/2024280
javascript.builtins.ArrayBuffer.transferToFixedLength 📋Chrome Android5/30/2023 Safari3/5/2024280
javascript.builtins.AsyncFunction 📋Chrome Android12/6/2016 Safari3/27/2017111
javascript.builtins.AsyncFunction.AsyncFunction 📋Chrome Android12/6/2016 Safari3/27/2017111
javascript.builtins.AsyncGenerator 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncGenerator.next 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncGenerator.return 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncGenerator.throw 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncGeneratorFunction 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncGeneratorFunction.AsyncGeneratorFunction 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.builtins.AsyncIterator 📋Chrome Android12/5/2017 Safari4/12/2018128
javascript.builtins.AsyncIterator.@@asyncIterator 📋Chrome Android12/5/2017 Safari4/12/2018128
javascript.builtins.Atomics 📋Chrome Android3/2/2021 Safari12/13/2021286
Safari: Before Safari 16.4, Atomics is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.Safari on iOS: Before Safari on iOS 16.4, Atomics is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.WebView on iOS: Before WebView on iOS 16.4, Atomics is gated behind COOP/COEP. For more detail, read Making your website "cross-origin isolated" using COOP and COEP.
javascript.builtins.Atomics.add 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.and 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.compareExchange 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.exchange 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.isLockFree 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.load 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.notify 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.or 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.pause 📋Chrome Android2/4/2025 Safari3/31/202555
javascript.builtins.Atomics.store 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.sub 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.wait 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.Atomics.waitAsync 📋Chrome Android4/13/2021 Safari3/27/2023713
Chrome: The Atomics.waitAsync() method never times out. See bug 40742782.Chrome Android: The Atomics.waitAsync() method never times out. See bug 40742782.Edge: The Atomics.waitAsync() method never times out. See bug 40742782.Quest Browser: The Atomics.waitAsync() method never times out. See bug 40742782.Opera Android: The Atomics.waitAsync() method never times out. See bug 40742782.WebView Android: The Atomics.waitAsync() method never times out. See bug 40742782.
javascript.builtins.Atomics.xor 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.BigInt 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.BigInt 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.asIntN 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.asUintN 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.toLocaleString 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.toLocaleString.locales_parameter Chrome Android7/30/2019 Safari9/16/2020414
Deno: Only the locale data for en-US is available.
javascript.builtins.BigInt.toLocaleString.options_parameter Chrome Android7/30/2019 Safari9/16/2020414
javascript.builtins.BigInt.toString 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt.valueOf 📋Chrome Android5/31/2018 Safari9/16/2020839
javascript.builtins.BigInt64Array 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.BigInt64Array.BigInt64Array 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.BigUint64Array 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.BigUint64Array.BigUint64Array 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.Boolean 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Boolean.Boolean 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Boolean.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Boolean.valueOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.DataView 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.DataView 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.DataView.sharedarraybuffer_support Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.DataView.buffer 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.byteLength 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.byteOffset 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getBigInt64 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.DataView.getBigUint64 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.DataView.getFloat16 📋Safari12/11/2024 Chrome Android4/1/2025111
javascript.builtins.DataView.getFloat32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getFloat64 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getInt16 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getInt32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getInt8 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getUint16 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getUint32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.getUint8 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setBigInt64 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.DataView.setBigUint64 📋Chrome Android5/31/2018 Safari9/20/20211208
javascript.builtins.DataView.setFloat16 📋Safari12/11/2024 Chrome Android4/1/2025111
javascript.builtins.DataView.setFloat32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setFloat64 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setInt16 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setInt32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setInt8 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setUint16 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setUint32 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.DataView.setUint8 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Date 📋Safari6/23/2003 Chrome Android6/27/20123292
Internet Explorer: The ISO8601 Date Format is not supported in Internet Explorer 8 or earlier.
javascript.builtins.Date.@@toPrimitive 📋Chrome Android12/2/2015 Safari9/20/2016293
javascript.builtins.Date.Date 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.UTC 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.UTC.optional_monthIndex Chrome Android6/27/2012 Safari3/27/20171734
javascript.builtins.Date.getDate 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getDay 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getFullYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getHours 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getMilliseconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getMinutes 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getMonth 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getSeconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getTime 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getTimezoneOffset 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCDate 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCDay 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCFullYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCHours 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCMilliseconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCMinutes 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCMonth 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getUTCSeconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.getYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.now 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.Date.parse 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.parse.iso_8601 Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Date.setDate 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setFullYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setHours 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setMilliseconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setMinutes 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setMonth 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setSeconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setTime 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCDate 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCFullYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCHours 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCMilliseconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCMinutes 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCMonth 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setUTCSeconds 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.setYear 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toDateString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toGMTString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toISOString 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.Date.toJSON 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.Date.toLocaleDateString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toLocaleDateString.iana_time_zone_names Chrome Android2/27/2013 Safari10/22/2013237
javascript.builtins.Date.toLocaleDateString.locales_parameter Chrome Android2/27/2013 Safari9/20/20161301
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Date.toLocaleDateString.options_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Date.toLocaleString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toLocaleString.iana_time_zone_names Chrome Android2/27/2013 Safari10/22/2013237
javascript.builtins.Date.toLocaleString.locales_parameter Chrome Android2/27/2013 Safari9/20/20161301
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Date.toLocaleString.options_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Date.toLocaleTimeString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toLocaleTimeString.iana_time_zone_names Chrome Android2/27/2013 Safari10/22/2013237
javascript.builtins.Date.toLocaleTimeString.locales_parameter Chrome Android2/27/2013 Safari9/20/20161301
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Date.toLocaleTimeString.options_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Date.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toTimeString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.toUTCString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Date.valueOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Error 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Error.Error 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Error.Error.options_cause_parameter 📋Chrome Android8/31/2021 Safari9/20/202120
javascript.builtins.Error.captureStackTrace 📋Chrome Android6/27/2012 Safari12/11/20234184
javascript.builtins.Error.cause 📋Chrome Android8/31/2021 Safari9/20/202120
Chrome: Before version 125, default console logging for Error objects does not print the cause.Chrome Android: Before version 125, default console logging for Error objects does not print the cause.Edge: Before version 125, default console logging for Error objects does not print the cause.Quest Browser: Before version false, default console logging for Error objects does not print the cause.Opera: Before version 111, default console logging for Error objects does not print the cause.Opera Android: Before version 83, default console logging for Error objects does not print the cause.Safari: Default console logging for Error objects does not print the cause.Safari on iOS: Default console logging for Error objects does not print the cause.Samsung Internet: Before version 27.0, default console logging for Error objects does not print the cause.WebView Android: Before version 125, default console logging for Error objects does not print the cause.WebView on iOS: Default console logging for Error objects does not print the cause.
javascript.builtins.Error.isError 📋Chrome Android3/4/2025 Safari3/31/202527
Node.js: Returns false for DOMException instances. See issue 56497.Safari: Returns false for DOMException instances.Safari on iOS: Returns false for DOMException instances.WebView on iOS: Returns false for DOMException instances.
javascript.builtins.Error.message 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Error.name 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Error.stack Chrome Android6/27/2012 Safari7/25/201228
javascript.builtins.Error.stackTraceLimit Chrome Android6/27/2012 Safari4/12/20182115
javascript.builtins.Error.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.EvalError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.EvalError.EvalError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.FinalizationRegistry 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.FinalizationRegistry.FinalizationRegistry 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.FinalizationRegistry.register 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.FinalizationRegistry.register.symbol_as_target Chrome Android1/10/2023 Safari3/27/202376
javascript.builtins.FinalizationRegistry.unregister 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.FinalizationRegistry.unregister.symbol_as_target Chrome Android1/10/2023 Safari3/27/202376
javascript.builtins.Float16Array 📋Safari12/11/2024 Chrome Android4/1/2025111
javascript.builtins.Float16Array.Float16Array 📋Safari12/11/2024 Chrome Android4/1/2025111
javascript.builtins.Float32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float32Array.Float32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float32Array.Float32Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float32Array.Float32Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Float64Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float64Array.Float64Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float64Array.Float64Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Float64Array.Float64Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Function 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.@@hasInstance 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Function.Function 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.apply 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.apply.generic_arrays_as_arguments Chrome Android6/27/2012 Safari7/25/201228
javascript.builtins.Function.arguments Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.bind 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Function.call 📋Safari6/23/2003 Chrome Android6/27/20123292
Node.js: When calling this method, thisArg does not default to the global object.
javascript.builtins.Function.caller Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Function.length 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.length.configurable_true Chrome Android5/27/2015 Safari9/20/2016482
javascript.builtins.Function.name 📋Chrome Android6/27/2012 Safari7/25/201228
javascript.builtins.Function.name.configurable_true Chrome Android5/27/2015 Safari9/20/2016482
javascript.builtins.Function.name.inferred_names Chrome Android6/8/2016 Safari9/20/2016104
Edge: Names for functions defined in a dictionary are properly assigned; however, anonymous functions defined on a var/let variable assignment have blank names.
javascript.builtins.Function.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Function.toString.toString_revision Chrome Android4/17/2018 Safari9/18/20231980
javascript.builtins.Generator 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Generator.next 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Generator.return 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Generator.throw 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.GeneratorFunction 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.GeneratorFunction.GeneratorFunction 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Infinity 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Int16Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int16Array.Int16Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int16Array.Int16Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int16Array.Int16Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Int32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int32Array.Int32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int32Array.Int32Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int32Array.Int32Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Int8Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int8Array.Int8Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int8Array.Int8Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Int8Array.Int8Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Intl 📋Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
javascript.builtins.Intl.Collator.Collator 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the Collator instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.Collator.Collator.options_caseFirst_parameter Chrome Android2/27/2013 Safari9/19/20171665
javascript.builtins.Intl.Collator.Collator.options_collation_parameter Chrome Android10/20/2020 Safari4/26/2021188
javascript.builtins.Intl.Collator.Collator.options_ignorePunctuation_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator.Collator.options_localeMatcher_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator.Collator.options_numeric_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator.Collator.options_sensitivity_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator.Collator.options_usage_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.Collator.compare 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
javascript.builtins.Intl.Collator.resolvedOptions 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the Collator() constructor for more details.
javascript.builtins.Intl.Collator.supportedLocalesOf 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.DateTimeFormat 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the DateTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.IntlLegacyConstructedSymbol 📋Safari4/26/2021 Chrome Android5/25/202129
Chrome: The fallback symbol property has description IntlFallback.Chrome Android: The fallback symbol property has description IntlFallback.Edge: The fallback symbol property has description IntlFallback.Node.js: The fallback symbol property has description IntlFallback.Quest Browser: The fallback symbol property has description IntlFallback.Opera: The fallback symbol property has description IntlFallback.Opera Android: The fallback symbol property has description IntlFallback.Samsung Internet: The fallback symbol property has description IntlFallback.WebView Android: The fallback symbol property has description IntlFallback.
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.locales_parameter Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the DateTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_calendar_parameter Chrome Android2/4/2020 Safari4/26/2021447
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dateStyle_parameter Chrome Android7/30/2019 Safari4/26/2021636
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_dayPeriod_parameter Safari4/26/2021 Chrome Android7/20/202185
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_fractionalSecondDigits_parameter Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_hourCycle_parameter Chrome Android3/12/2019 Safari9/19/2019191
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_numberingSystem_parameter Chrome Android2/4/2020 Safari4/26/2021447
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeStyle_parameter Chrome Android7/30/2019 Safari4/26/2021636
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZoneName_parameter.extended_values Chrome Android10/19/2021 Safari3/14/2022146
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.DateTimeFormat.DateTimeFormat.options_parameter.options_timeZone_parameter.iana_time_zones Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.DateTimeFormat.format 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
javascript.builtins.Intl.DateTimeFormat.formatRange 📋Chrome Android7/30/2019 Safari4/26/2021636
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
javascript.builtins.Intl.DateTimeFormat.formatRangeToParts 📋Chrome Android7/30/2019 Safari4/26/2021636
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
javascript.builtins.Intl.DateTimeFormat.formatToParts 📋Chrome Android3/16/2017 Safari9/19/2017187
Chrome: Before version 71, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 71 and later use the specification defined dayPeriod. See bug 41402623.Chrome Android: Before version 71, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 71 and later use the specification defined dayPeriod. See bug 41402623.Node.js: Before version 12.0.0, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 12.0.0 and later use the specification defined dayPeriod. See bug 41402623.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.Quest Browser: Before version 6.0, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 71 and later use the specification defined dayPeriod. See bug 41402623.Opera: Before version 58, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 58 and later use the specification defined dayPeriod. See bug 41402623.Opera Android: Before version 50, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 50 and later use the specification defined dayPeriod. See bug 41402623.Samsung Internet: Before version 71, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 71 and later use the specification defined dayPeriod. See bug 41402623.WebView Android: Before version 71, formatToParts() returned an object with an incorrectly cased type key of dayperiod. Version 71 and later use the specification defined dayPeriod. See bug 41402623.
javascript.builtins.Intl.DateTimeFormat.resolvedOptions 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the DateTimeFormat() constructor for more details.
javascript.builtins.Intl.DateTimeFormat.resolvedOptions.computed_timezone Chrome Android5/20/2014 Safari9/20/2016854
javascript.builtins.Intl.DateTimeFormat.supportedLocalesOf 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.DisplayNames 📋Chrome Android4/7/2020 Safari4/26/2021384
javascript.builtins.Intl.DisplayNames.DisplayNames 📋Chrome Android4/7/2020 Safari4/26/2021384
javascript.builtins.Intl.DisplayNames.of 📋Chrome Android4/7/2020 Safari4/26/2021384
javascript.builtins.Intl.DisplayNames.resolvedOptions 📋Chrome Android4/7/2020 Safari4/26/2021384
javascript.builtins.Intl.DisplayNames.supportedLocalesOf 📋Chrome Android4/7/2020 Safari4/26/2021384
javascript.builtins.Intl.DurationFormat 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.DurationFormat.DurationFormat 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.DurationFormat.format 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.DurationFormat.formatToParts 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.DurationFormat.resolvedOptions 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.DurationFormat.supportedLocalesOf 📋Safari3/27/2023 Chrome Android9/17/2024540
javascript.builtins.Intl.ListFormat 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the ListFormat() constructor for more details.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.ListFormat.ListFormat 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the ListFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.ListFormat.format 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the ListFormat() constructor for more details.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.ListFormat.formatToParts 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the ListFormat() constructor for more details.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.ListFormat.resolvedOptions 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the ListFormat() constructor for more details.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.ListFormat.supportedLocalesOf 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.Safari: Only available on macOS Big Sur (11) and above.
javascript.builtins.Intl.Locale 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.Locale 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.baseName 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.calendar 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.caseFirst 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.collation 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.getCalendars 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getCollations 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getHourCycles 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getNumberingSystems 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getTextInfo 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Deno: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getTimeZones 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.getWeekInfo 📋Safari9/18/2023 Chrome Android10/15/2024393
Chrome: Implemented as an accessor property.Chrome Android: Implemented as an accessor property.Deno: Implemented as an accessor property.Edge: Implemented as an accessor property.Node.js: Implemented as an accessor property.Quest Browser: Implemented as an accessor property.Opera: Implemented as an accessor property.Opera Android: Implemented as an accessor property.Safari: Implemented as an accessor property.Safari on iOS: Implemented as an accessor property.Samsung Internet: Implemented as an accessor property.WebView Android: Implemented as an accessor property.WebView on iOS: Implemented as an accessor property.
javascript.builtins.Intl.Locale.hourCycle 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.language 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.maximize 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.minimize 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.numberingSystem 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.numeric 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.region 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.script 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.Locale.toString 📋Chrome Android4/24/2019 Safari9/16/2020511
javascript.builtins.Intl.NumberFormat 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the NumberFormat() constructor for more details.
javascript.builtins.Intl.NumberFormat.NumberFormat 📋Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.IntlLegacyConstructedSymbol 📋Safari4/26/2021 Chrome Android5/25/202129
Chrome: The fallback symbol property has description IntlFallback.Chrome Android: The fallback symbol property has description IntlFallback.Edge: The fallback symbol property has description IntlFallback.Node.js: The fallback symbol property has description IntlFallback.Quest Browser: The fallback symbol property has description IntlFallback.Opera: The fallback symbol property has description IntlFallback.Opera Android: The fallback symbol property has description IntlFallback.Samsung Internet: The fallback symbol property has description IntlFallback.WebView Android: The fallback symbol property has description IntlFallback.
javascript.builtins.Intl.NumberFormat.NumberFormat.locales_parameter Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the NumberFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_compactDisplay_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currencyDisplay_parameter Chrome Android9/10/2019 Safari4/26/2021594
Safari: Doesn't support currencyDisplay: 'narrowSymbol'.Safari on iOS: Doesn't support currencyDisplay: 'narrowSymbol'.WebView on iOS: Doesn't support currencyDisplay: 'narrowSymbol'.
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currencySign_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_currency_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_localeMatcher_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_maximumFractionDigits_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_maximumSignificantDigits_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumFractionDigits_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumIntegerDigits_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_minimumSignificantDigits_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_notation_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_numberingSystem_parameter Chrome Android2/27/2013 Safari4/26/20212980
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingIncrement_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingMode_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_roundingPriority_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_signDisplay_parameter.negative Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_style_parameter Chrome Android2/27/2013 Safari9/20/20161301
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_trailingZeroDisplay_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_unitDisplay_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_unit_parameter Chrome Android9/10/2019 Safari4/26/2021594
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the NumberFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.NumberFormat.NumberFormat.options_parameter.options_useGrouping_parameter.string_values Chrome Android9/27/2022 Safari3/27/2023181
javascript.builtins.Intl.NumberFormat.format 📋Chrome Android2/27/2013 Safari9/20/20161301
Edge: Before Edge 18, numbers are rounded to 15 decimal digits. For example, new Intl.NumberFormat('en-US').format(1000000000000005) returns "1,000,000,000,000,010".Internet Explorer: In Internet Explorer 11, numbers are rounded to 15 decimal digits. For example, new Intl.NumberFormat('en-US').format(1000000000000005) returns "1,000,000,000,000,010".Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the NumberFormat() constructor for more details.
javascript.builtins.Intl.NumberFormat.format.number_parameter-string_decimal Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.formatRange 📋Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.formatRangeToParts 📋Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.NumberFormat.formatToParts 📋Chrome Android1/23/2018 Safari9/19/2019604
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the NumberFormat() constructor for more details.
javascript.builtins.Intl.NumberFormat.resolvedOptions 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the NumberFormat() constructor for more details.
javascript.builtins.Intl.NumberFormat.supportedLocalesOf 📋Chrome Android2/27/2013 Safari9/20/20161301
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.PluralRules 📋Chrome Android12/5/2017 Safari9/19/2019653
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the PluralRules() constructor for more details.
javascript.builtins.Intl.PluralRules.PluralRules 📋Chrome Android12/5/2017 Safari9/19/2019653
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the PluralRules instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.PluralRules.PluralRules.options_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_roundingMode_parameter Chrome Android9/12/2023 Safari12/11/202390
javascript.builtins.Intl.PluralRules.PluralRules.options_parameter.options_roundingPriority_parameter Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.PluralRules.resolvedOptions 📋Chrome Android12/5/2017 Safari9/19/2019653
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the PluralRules() constructor for more details.
javascript.builtins.Intl.PluralRules.select 📋Chrome Android12/5/2017 Safari9/19/2019653
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the PluralRules() constructor for more details.
javascript.builtins.Intl.PluralRules.selectRange 📋Safari3/14/2022 Chrome Android9/27/2022197
javascript.builtins.Intl.PluralRules.supportedLocalesOf 📋Chrome Android12/5/2017 Safari9/19/2019653
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the PluralRules() constructor for more details.
javascript.builtins.Intl.RelativeTimeFormat 📋Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat 📋Chrome Android12/4/2018 Safari9/16/2020652
javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.locales_parameter Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the RelativeTimeFormat instance silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_localeMatcher_parameter Chrome Android12/4/2018 Safari9/16/2020652
javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_numberingSystem_parameter Chrome Android12/4/2018 Safari9/16/2020652
javascript.builtins.Intl.RelativeTimeFormat.RelativeTimeFormat.options_parameter.options_numeric_parameter Chrome Android12/4/2018 Safari9/16/2020652
javascript.builtins.Intl.RelativeTimeFormat.format 📋Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
javascript.builtins.Intl.RelativeTimeFormat.formatToParts 📋Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
javascript.builtins.Intl.RelativeTimeFormat.resolvedOptions 📋Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. See the RelativeTimeFormat() constructor for more details.
javascript.builtins.Intl.RelativeTimeFormat.supportedLocalesOf 📋Chrome Android12/4/2018 Safari9/16/2020652
Node.js: Before version 13.0.0, only the locale data for en-US is available by default. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Intl.Segmenter 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segmenter.Segmenter 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segmenter.resolvedOptions 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segmenter.segment 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segmenter.supportedLocalesOf 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segments 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segments.@@iterator 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.Segments.containing 📋Chrome Android11/17/2020 Safari4/26/2021160
javascript.builtins.Intl.getCanonicalLocales 📋Chrome Android10/19/2016 Safari3/27/2017159
javascript.builtins.Intl.supportedValuesOf 📋Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_calendar Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_collation Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_currency Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_numberingSystem Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_timeZone Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Intl.supportedValuesOf.key_parameter_unit Chrome Android3/1/2022 Safari3/14/202213
javascript.builtins.Iterator 📋Chrome Android10/8/2014 Safari9/20/2016713
javascript.builtins.Iterator.@@iterator 📋Chrome Android10/8/2014 Safari9/20/2016713
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.Iterator.Iterator 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.drop 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.every 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.filter 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.find 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.flatMap 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.forEach 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.from 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.map 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.reduce 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.some 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.take 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.Iterator.toArray 📋Chrome Android2/20/2024 Safari3/31/2025405
javascript.builtins.JSON 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.JSON.json_superset Chrome Android4/17/2018 Safari9/17/2018153
javascript.builtins.JSON.parse 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.JSON.parse.reviver_parameter_context_argument 📋Chrome Android5/30/2023 Safari3/31/2025671
javascript.builtins.JSON.stringify 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.builtins.JSON.stringify.well_formed_stringify Chrome Android1/29/2019 Safari3/25/201955
javascript.builtins.Map 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.@@iterator 📋Chrome Android10/8/2014 Safari9/20/2016713
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.Map.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.Map.Map 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.Map.iterable_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Map.Map.null_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Map.clear 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.delete 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.entries 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.forEach 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.get 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.getOrInsert 📋Safari12/12/2025 Chrome Android2/10/202660
javascript.builtins.Map.getOrInsertComputed 📋Safari12/12/2025 Chrome Android2/10/202660
javascript.builtins.Map.groupBy 📋Chrome Android9/12/2023 Safari3/5/2024175
javascript.builtins.Map.has 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.key_equality_for_zeros Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Map.keys 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Map.set 📋Chrome Android10/8/2014 Safari10/16/20148
Internet Explorer: Returns 'undefined' instead of the 'Map' object.
javascript.builtins.Map.size 📋Chrome Android10/8/2014 Safari10/16/20148
Firefox: From Firefox 13 to Firefox 18, the size property was implemented as a Map.prototype.size() method, this has been changed to a property in later versions conform to the ECMAScript 2015 specification.Firefox for Android: From Firefox for Android 14 to Firefox for Android 18, the size property was implemented as a Map.prototype.size() method, this has been changed to a property in later versions conform to the ECMAScript 2015 specification.
javascript.builtins.Map.values 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.E 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.LN10 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.LN2 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.LOG10E 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.LOG2E 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.PI 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.SQRT1_2 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.SQRT2 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.abs 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.acos 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.acosh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.asin 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.asinh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.atan 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.atan2 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.atanh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.cbrt 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.ceil 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.clz32 📋Safari10/22/2013 Chrome Android10/8/2014351
javascript.builtins.Math.cos 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.cosh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.exp 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.expm1 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.f16round 📋Safari12/11/2024 Chrome Android4/1/2025111
javascript.builtins.Math.floor 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.fround 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.hypot 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.imul 📋Chrome Android7/10/2013 Safari10/22/2013104
javascript.builtins.Math.log 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.log10 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.log1p 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.log2 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.max 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.min 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.pow 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.random 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.round 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.sign 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Math.sin 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.sinh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.sqrt 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.tan 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Math.tanh 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Math.trunc 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.NaN 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.EPSILON 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.MAX_SAFE_INTEGER 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.MAX_VALUE 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.MIN_SAFE_INTEGER 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.MIN_VALUE 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.NEGATIVE_INFINITY 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.NaN 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.Number 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.POSITIVE_INFINITY 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.isFinite 📋Chrome Android2/27/2013 Safari9/30/2015945
javascript.builtins.Number.isInteger 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.isNaN 📋Chrome Android2/27/2013 Safari9/30/2015945
javascript.builtins.Number.isSafeInteger 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.parseFloat 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.parseInt 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Number.toExponential 📋Safari4/29/2005 Chrome Android6/27/20122616
javascript.builtins.Number.toFixed 📋Safari4/29/2005 Chrome Android6/27/20122616
javascript.builtins.Number.toLocaleString 📋Safari6/23/2003 Chrome Android6/27/20123292
Edge: Before Edge 18, numbers are rounded to 15 decimal digits. For example, (1000000000000005).toLocaleString('en-US') returns "1,000,000,000,000,010".Internet Explorer: In Internet Explorer 11, numbers are rounded to 15 decimal digits. For example, (1000000000000005).toLocaleString('en-US') returns "1,000,000,000,000,010".
javascript.builtins.Number.toLocaleString.locales_parameter Chrome Android4/3/2013 Safari9/20/20161266
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.Number.toLocaleString.options_parameter Chrome Android4/3/2013 Safari9/20/20161266
javascript.builtins.Number.toPrecision 📋Safari4/29/2005 Chrome Android6/27/20122616
javascript.builtins.Number.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Number.valueOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.Object 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.assign 📋Chrome Android9/1/2015 Safari9/30/201529
javascript.builtins.Object.constructor 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.create 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Object.defineGetter 📋Safari10/26/2007 Chrome Android6/27/20121706
Firefox: Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.
javascript.builtins.Object.defineProperties 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Object.defineProperty 📋Safari7/20/2011 Chrome Android6/27/2012343
Internet Explorer: In Internet Explorer 8, this was only supported on DOM objects and with some non-standard behaviors. This was later fixed in Internet Explorer 9.Safari: Also supported in Safari 5, but not on DOM objects.Safari on iOS: Also supported in Safari for iOS 4.2, but not on DOM objects.WebView on iOS: Also supported in Safari for iOS 4.2, but not on DOM objects.
javascript.builtins.Object.defineSetter 📋Safari10/26/2007 Chrome Android6/27/20121706
Firefox: Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.
javascript.builtins.Object.entries 📋Chrome Android10/19/2016 Safari3/27/2017159
javascript.builtins.Object.freeze 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.fromEntries 📋Chrome Android3/12/2019 Safari3/25/201913
javascript.builtins.Object.getOwnPropertyDescriptor 📋Safari6/7/2010 Chrome Android6/27/2012751
Internet Explorer: In Internet Explorer 8, this was only supported on DOM objects and with some non-standard behaviors. This was later fixed in Internet Explorer 9.
javascript.builtins.Object.getOwnPropertyDescriptors 📋Safari9/20/2016 Chrome Android10/19/201629
javascript.builtins.Object.getOwnPropertyNames 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Object.getOwnPropertySymbols 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Object.getPrototypeOf 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Object.groupBy 📋Chrome Android9/12/2023 Safari3/5/2024175
javascript.builtins.Object.hasOwn 📋Chrome Android8/31/2021 Safari3/14/2022195
javascript.builtins.Object.hasOwnProperty 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.is 📋Chrome Android2/27/2013 Safari9/30/2015945
javascript.builtins.Object.isExtensible 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.isFrozen 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.isPrototypeOf 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.isSealed 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.keys 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.Object.lookupGetter 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.lookupSetter 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.preventExtensions 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.preventExtensions.ES2015_behavior Chrome Android7/29/2015 Safari9/30/201563
javascript.builtins.Object.propertyIsEnumerable 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.proto 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.Object.seal 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Object.setPrototypeOf 📋Chrome Android4/2/2014 Safari9/30/2015546
javascript.builtins.Object.toLocaleString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.valueOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Object.values 📋Chrome Android10/19/2016 Safari3/27/2017159
javascript.builtins.Promise 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.Promise.Promise 📋Chrome Android1/15/2014 Safari10/16/2014274
Firefox: Constructor requires a new operator since version 37.Firefox for Android: Constructor requires a new operator since version 37.Node.js: Constructor requires a new operator since version 4.Safari: Constructor requires a new operator since version 10.Safari on iOS: Constructor requires a new operator since version 10.WebView on iOS: Constructor requires a new operator since version 10.
javascript.builtins.Promise.all 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.allSettled 📋Chrome Android7/30/2019 Safari9/19/201951
javascript.builtins.Promise.any 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.builtins.Promise.catch 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.finally 📋Chrome Android12/5/2017 Safari4/12/2018128
javascript.builtins.Promise.race 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.reject 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.resolve 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.then 📋Chrome Android1/15/2014 Safari10/16/2014274
javascript.builtins.Promise.try 📋Chrome Android8/20/2024 Safari12/11/2024113
javascript.builtins.Promise.withResolvers 📋Chrome Android10/31/2023 Safari3/5/2024126
javascript.builtins.Proxy 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.Proxy 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.apply 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.construct 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.defineProperty 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.deleteProperty 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.get 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.getOwnPropertyDescriptor 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.getPrototypeOf 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.has 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.isExtensible 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.ownKeys 📋Chrome Android3/9/2016 Safari9/20/2016195
Firefox: In Firefox 42, the implementation got updated to reflect the final ES2015 specification: The result is now checked if it is an array and if the array elements are either of type string or of type symbol. Enumerating duplicate own property names is not a failure anymore.Firefox for Android: In Firefox for Android 42, the implementation got updated to reflect the final ES2015 specification: The result is now checked if it is an array and if the array elements are either of type string or of type symbol. Enumerating duplicate own property names is not a failure anymore.
javascript.builtins.Proxy.handler.preventExtensions 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.set 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.handler.setPrototypeOf 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Proxy.revocable 📋Safari9/20/2016 Chrome Android12/5/2017441
javascript.builtins.RangeError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RangeError.RangeError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.ReferenceError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.ReferenceError.ReferenceError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Reflect 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.apply 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.construct 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.defineProperty 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.deleteProperty 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.get 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.getOwnPropertyDescriptor 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.getPrototypeOf 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.has 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.isExtensible 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.ownKeys 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.preventExtensions 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.set 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Reflect.setPrototypeOf 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.RegExp 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.@@match 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.RegExp.@@matchAll 📋Chrome Android3/12/2019 Safari9/19/2019191
javascript.builtins.RegExp.@@replace 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.RegExp.@@search 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.RegExp.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.RegExp.@@split 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.RegExp.RegExp 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.compile 📋Safari3/18/2008 Chrome Android6/27/20121562
javascript.builtins.RegExp.dotAll 📋Chrome Android10/24/2017 Safari4/12/2018170
javascript.builtins.RegExp.escape 📋Safari12/11/2024 Chrome Android4/29/2025139
javascript.builtins.RegExp.exec 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.flags 📋Safari9/30/2015 Chrome Android3/9/2016161
javascript.builtins.RegExp.global 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.global.prototype_accessor Safari4/15/2005 Chrome Android1/26/20163938
javascript.builtins.RegExp.hasIndices 📋Chrome Android4/13/2021 Safari9/20/2021160
javascript.builtins.RegExp.ignoreCase 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.ignoreCase.prototype_accessor Safari4/15/2005 Chrome Android1/26/20163938
javascript.builtins.RegExp.input 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.RegExp.lastIndex 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.lastMatch 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.RegExp.lastParen 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.RegExp.leftContext 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.RegExp.multiline 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.multiline.prototype_accessor Safari4/15/2005 Chrome Android1/26/20163938
javascript.builtins.RegExp.n 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.rightContext 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.RegExp.source 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.source.empty_regex_string Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.RegExp.source.escaping Safari7/25/2012 Chrome Android3/12/20192421
javascript.builtins.RegExp.source.prototype_accessor Safari4/15/2005 Chrome Android1/26/20163938
javascript.builtins.RegExp.sticky 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.RegExp.sticky.anchored_sticky_flag Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.RegExp.sticky.prototype_accessor Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.RegExp.test 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.RegExp.toString.escaping Safari7/25/2012 Chrome Android3/12/20192421
javascript.builtins.RegExp.unicode 📋Chrome Android4/13/2016 Safari9/20/2016160
Edge: Case folding is implemented in version 13Node.js: Case folding is implemented in version 8.6.0
javascript.builtins.RegExp.unicodeSets 📋Chrome Android4/4/2023 Safari9/18/2023167
javascript.builtins.Set 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.@@iterator 📋Chrome Android5/27/2015 Safari9/30/2015126
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.Set.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.Set.Set 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.Set.iterable_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Set.Set.null_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Set.add 📋Chrome Android10/8/2014 Safari10/16/20148
Internet Explorer: Returns 'undefined' instead of the 'Set' object.
javascript.builtins.Set.clear 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.delete 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.difference 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.entries 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.forEach 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.has 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.intersection 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.isDisjointFrom 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.isSubsetOf 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.isSupersetOf 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.key_equality_for_zeros Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Set.keys 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.Set.size 📋Chrome Android10/8/2014 Safari10/16/20148
Firefox: From Firefox 13 to Firefox 18, the size property was implemented as a Set.prototype.size() method, this has been changed to a property in later versions conform to the ECMAScript 2015 specification.Firefox for Android: From Firefox for Android 14 to Firefox for Android 18, the size property was implemented as a Set.prototype.size() method, this has been changed to a property in later versions conform to the ECMAScript 2015 specification.
javascript.builtins.Set.symmetricDifference 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.union 📋Safari9/18/2023 Chrome Android2/20/2024155
javascript.builtins.Set.values 📋Chrome Android10/8/2014 Safari10/16/20148
javascript.builtins.SharedArrayBuffer 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.SharedArrayBuffer.@@species 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.SharedArrayBuffer.SharedArrayBuffer 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.SharedArrayBuffer.SharedArrayBuffer.maxByteLength_option 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.SharedArrayBuffer.byteLength 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.SharedArrayBuffer.grow 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.SharedArrayBuffer.growable 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.SharedArrayBuffer.maxByteLength 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.SharedArrayBuffer.slice 📋Chrome Android3/2/2021 Safari12/13/2021286
javascript.builtins.String 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.@@iterator 📋Chrome Android10/8/2014 Safari9/30/2015357
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.String.String 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.anchor 📋Safari6/23/2003 Chrome Android6/27/20123292
Firefox: Starting with version 17, the quotation mark (") is replaced by its HTML reference character (") in strings supplied for the name parameter.
javascript.builtins.String.at 📋Chrome Android7/20/2021 Safari3/14/2022237
javascript.builtins.String.big 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.blink 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.bold 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.charAt 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.charCodeAt 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.codePointAt 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.builtins.String.concat 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.endsWith 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.String.fixed 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.fontcolor 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.fontsize 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.fromCharCode 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.fromCodePoint 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.builtins.String.includes 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.builtins.String.indexOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.isWellFormed 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.String.italics 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.lastIndexOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.length 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.link 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.localeCompare 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.builtins.String.localeCompare.locales_parameter Chrome Android4/3/2013 Safari9/20/20161266
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.String.localeCompare.options_parameter Chrome Android4/3/2013 Safari9/20/20161266
javascript.builtins.String.match 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.matchAll 📋Chrome Android3/12/2019 Safari9/19/2019191
javascript.builtins.String.normalize 📋Chrome Android4/2/2014 Safari9/20/2016902
javascript.builtins.String.padEnd 📋Safari9/20/2016 Chrome Android3/16/2017177
javascript.builtins.String.padStart 📋Safari9/20/2016 Chrome Android3/16/2017177
javascript.builtins.String.raw 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.builtins.String.repeat 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.String.replace 📋Safari6/23/2003 Chrome Android6/27/20123292
Internet Explorer: A replacement function as second argument is not supported.
javascript.builtins.String.replaceAll 📋Safari3/24/2020 Chrome Android8/25/2020154
javascript.builtins.String.search 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.slice 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.small 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.split 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.startsWith 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.String.strike 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.sub 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.substr 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.substring 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.sup 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.toLocaleLowerCase 📋Safari4/15/2005 Chrome Android6/27/20122630
javascript.builtins.String.toLocaleLowerCase.locales_parameter Safari9/20/2016 Chrome Android4/25/2017217
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.String.toLocaleUpperCase 📋Safari4/15/2005 Chrome Android6/27/20122630
javascript.builtins.String.toLocaleUpperCase.locales_parameter Safari9/20/2016 Chrome Android4/25/2017217
Deno: Only the locale data for en-US is available.Node.js: Before version 13.0.0, only the locale data for en-US is available by default. When other locales are specified, the function silently falls back to en-US. To make full ICU (locale) data available before version 13, see Node.js documentation on the --with-intl option and how to provide the data.
javascript.builtins.String.toLowerCase 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.toString 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.toUpperCase 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.toWellFormed 📋Chrome Android3/7/2023 Safari3/27/202320
javascript.builtins.String.trim 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.builtins.String.trimEnd 📋Chrome Android4/17/2018 Safari9/17/2018153
javascript.builtins.String.trimStart 📋Chrome Android4/17/2018 Safari9/17/2018153
javascript.builtins.String.unicode_code_point_escapes Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.String.valueOf 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Symbol 📋Chrome Android10/8/2014 Safari9/30/2015357
Edge: Edge 12 included Symbol properties in JSON.stringify() output.
javascript.builtins.Symbol.@@toPrimitive 📋Chrome Android12/2/2015 Safari9/20/2016293
javascript.builtins.Symbol.Symbol 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Symbol.asyncIterator 📋Chrome Android12/5/2017 Safari4/12/2018128
javascript.builtins.Symbol.description 📋Chrome Android10/17/2018 Safari3/25/2019159
Safari: No support for an undefined description.Safari on iOS: No support for an undefined description.WebView on iOS: No support for an undefined description.
javascript.builtins.Symbol.for 📋Chrome Android1/21/2015 Safari9/30/2015252
javascript.builtins.Symbol.hasInstance 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Symbol.isConcatSpreadable 📋Chrome Android1/26/2016 Safari9/20/2016238
javascript.builtins.Symbol.iterator 📋Chrome Android5/27/2015 Safari9/20/2016482
javascript.builtins.Symbol.keyFor 📋Chrome Android1/21/2015 Safari9/30/2015252
javascript.builtins.Symbol.match 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Symbol.matchAll 📋Chrome Android3/12/2019 Safari9/19/2019191
javascript.builtins.Symbol.replace 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Symbol.search 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Symbol.species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.Symbol.split 📋Chrome Android4/13/2016 Safari9/20/2016160
javascript.builtins.Symbol.toPrimitive 📋Chrome Android12/2/2015 Safari9/20/2016293
javascript.builtins.Symbol.toString 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Symbol.toStringTag 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.builtins.Symbol.toStringTag.dom_objects Chrome Android4/13/2016 Safari9/16/20201617
javascript.builtins.Symbol.unscopables 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.Symbol.valueOf 📋Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.SyntaxError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.SyntaxError.SyntaxError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.TypeError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.TypeError.TypeError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.TypedArray 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.@@iterator 📋Chrome Android10/8/2014 Safari9/20/2016713
Firefox: A placeholder property named @@iterator is used.Firefox: A placeholder property named iterator is used.Firefox for Android: A placeholder property named @@iterator is used.Firefox for Android: A placeholder property named iterator is used.
javascript.builtins.TypedArray.@@species 📋Chrome Android6/8/2016 Safari9/20/2016104
javascript.builtins.TypedArray.BYTES_PER_ELEMENT 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.at 📋Chrome Android7/20/2021 Safari3/14/2022237
javascript.builtins.TypedArray.buffer 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.byteLength 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.byteOffset 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.copyWithin 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.entries 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.every 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.fill 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.filter 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.find 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.findIndex 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.findLast 📋Chrome Android1/4/2022 Safari3/14/202269
javascript.builtins.TypedArray.findLastIndex 📋Chrome Android1/4/2022 Safari3/14/202269
javascript.builtins.TypedArray.forEach 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.from 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.includes 📋Chrome Android12/2/2015 Safari9/20/2016293
javascript.builtins.TypedArray.indexOf 📋Chrome Android9/1/2015 Safari9/20/2016385
Firefox: Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).indexOf(0, -0) will now always return +0.Firefox for Android: Starting with Firefox for Android 47, this method will no longer return -0. For example, new Uint8Array([0]).indexOf(0, -0) will now always return +0.
javascript.builtins.TypedArray.index_properties_not_consulting_prototype Safari7/20/2011 Chrome Android6/27/2012343
Bun: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Chrome: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Chrome Android: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Deno: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Edge: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Internet Explorer: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Node.js: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Quest Browser: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Opera: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Opera Android: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Safari: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Safari on iOS: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.Samsung Internet: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.WebView Android: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.WebView on iOS: Negative integers are not considered as indexed properties and therefore return the value of the prototype property.
javascript.builtins.TypedArray.iterable_in_constructor Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.TypedArray.join 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.keys 📋Chrome Android10/8/2014 Safari9/20/2016713
javascript.builtins.TypedArray.lastIndexOf 📋Chrome Android9/1/2015 Safari9/20/2016385
Firefox: Starting with Firefox 47, this method will no longer return -0. For example, new Uint8Array([0]).lastIndexOf(0, -0) will now always return +0.Firefox for Android: Starting with Firefox for Android 47, this method will no longer return -0. For example, new Uint8Array([0]).lastIndexOf(0, -0) will now always return +0.
javascript.builtins.TypedArray.length 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.map 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.name 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.named_properties Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.of 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.reduce 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.reduceRight 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.reverse 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.set 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.slice 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.some 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.sort 📋Chrome Android9/1/2015 Safari9/20/2016385
javascript.builtins.TypedArray.subarray 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.toLocaleString 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.toReversed 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.TypedArray.toSorted 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.TypedArray.toString 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.TypedArray.values 📋Chrome Android10/8/2014 Safari9/20/2016713
javascript.builtins.TypedArray.with 📋Safari9/12/2022 Chrome Android2/7/2023148
javascript.builtins.URIError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.URIError.URIError 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.Uint16Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint16Array.Uint16Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint16Array.Uint16Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint16Array.Uint16Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Uint32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint32Array.Uint32Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint32Array.Uint32Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint32Array.Uint32Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Uint8Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8Array.Uint8Array 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8Array.Uint8Array.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8Array.Uint8Array.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.Uint8Array.fromBase64 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8Array.fromHex 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8Array.setFromBase64 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8Array.setFromHex 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8Array.toBase64 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8Array.toHex 📋Safari12/11/2024 Chrome Android9/2/2025265
javascript.builtins.Uint8ClampedArray 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8ClampedArray.Uint8ClampedArray 📋Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8ClampedArray.Uint8ClampedArray.constructor_without_parameters Safari7/20/2011 Chrome Android6/27/2012343
javascript.builtins.Uint8ClampedArray.Uint8ClampedArray.iterable_allowed Chrome Android11/12/2014 Safari9/20/2016678
javascript.builtins.WeakMap 📋Chrome Android7/16/2014 Safari10/16/201492
javascript.builtins.WeakMap.WeakMap 📋Chrome Android7/16/2014 Safari10/16/201492
javascript.builtins.WeakMap.WeakMap.iterable_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.WeakMap.WeakMap.null_allowed Chrome Android7/16/2014 Safari10/16/201492
javascript.builtins.WeakMap.delete 📋Chrome Android7/16/2014 Safari10/16/201492
Firefox: Before Firefox 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.Firefox for Android: Before Firefox for Android 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.
javascript.builtins.WeakMap.get 📋Chrome Android7/16/2014 Safari10/16/201492
Firefox: Before Firefox 38, this method threw a TypeError when the key parameter was not an object. However, the ES2015 specification specifies to return undefined instead. Furthermore, WeakMap.prototype.get accepted an optional second argument as a fallback value, which is not part of the standard. Both non-standard behaviors are removed in version 38 and higher.Firefox for Android: Before Firefox for Android 38, this method threw a TypeError when the key parameter was not an object. However, the ES2015 specification specifies to return undefined instead. Furthermore, WeakMap.prototype.get accepted an optional second argument as a fallback value, which is not part of the standard. Both non-standard behaviors are removed in version 38 and higher.
javascript.builtins.WeakMap.getOrInsert 📋Safari12/12/2025 Chrome Android2/10/202660
javascript.builtins.WeakMap.getOrInsertComputed 📋Safari12/12/2025 Chrome Android2/10/202660
javascript.builtins.WeakMap.has 📋Chrome Android7/16/2014 Safari10/16/201492
Firefox: Before Firefox 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.Firefox for Android: Before Firefox for Android 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.
javascript.builtins.WeakMap.set 📋Chrome Android7/16/2014 Safari10/16/201492
Firefox: Before Firefox 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.Firefox for Android: Before Firefox for Android 38, this method threw a TypeError when the key parameter was not an object. This has been fixed in version 38 and later to return false as per the ES2015 standard.Internet Explorer: Returns 'undefined' instead of the 'Map' object.
javascript.builtins.WeakMap.symbol_as_keys Chrome Android1/10/2023 Safari3/27/202376
javascript.builtins.WeakRef 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.WeakRef.WeakRef 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.WeakRef.WeakRef.symbol_as_target Chrome Android1/10/2023 Safari3/27/202376
javascript.builtins.WeakRef.deref 📋Chrome Android7/27/2020 Safari4/26/2021273
javascript.builtins.WeakSet 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.WeakSet 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.WeakSet.iterable_allowed Chrome Android10/8/2014 Safari9/30/2015357
javascript.builtins.WeakSet.WeakSet.null_allowed Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.add 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.delete 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.has 📋Chrome Android7/16/2014 Safari9/30/2015441
javascript.builtins.WeakSet.symbol_as_keys Chrome Android1/10/2023 Safari3/27/202376
javascript.builtins.decodeURI 📋Safari10/24/2003 Chrome Android6/27/20123169
javascript.builtins.decodeURIComponent 📋Safari10/24/2003 Chrome Android6/27/20123169
javascript.builtins.encodeURI 📋Safari10/24/2003 Chrome Android6/27/20123169
javascript.builtins.encodeURIComponent 📋Safari10/24/2003 Chrome Android6/27/20123169
javascript.builtins.escape 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.eval 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.globalThis 📋Chrome Android12/4/2018 Safari3/25/2019111
javascript.builtins.isFinite 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.isNaN 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.parseFloat 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.parseInt 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.parseInt.leading_zero_strings_as_decimal Safari7/25/2012 Chrome Android2/27/2013217
javascript.builtins.undefined 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.builtins.unescape 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.classes 📋Safari9/30/2015 Chrome Android3/9/2016161
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Opera: Strict mode is required.Opera Android: Strict mode is required.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.classes.constructor 📋Safari9/30/2015 Chrome Android3/9/2016161
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Opera: Strict mode is required.Opera Android: Strict mode is required.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.classes.extends 📋Safari9/30/2015 Chrome Android3/9/2016161
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Opera: Strict mode is required.Opera Android: Strict mode is required.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.classes.private_class_fields 📋Chrome Android4/24/2019 Safari4/26/2021733
javascript.classes.private_class_fields_in 📋Chrome Android5/25/2021 Safari9/20/2021118
javascript.classes.private_class_methods 📋Chrome Android7/27/2020 Safari9/20/2021420
javascript.classes.public_class_fields 📋Chrome Android1/29/2019 Safari9/12/20221322
Safari: Parentheses in field initializers can lead to ReferenceErrors. See bug 236843.Safari: Doesn't support public static fields. See bug 194095.Safari on iOS: Parentheses in field initializers can lead to ReferenceErrors. See bug 236843.Safari on iOS: Doesn't support public static fields. See bug 194095.WebView on iOS: Parentheses in field initializers can lead to ReferenceErrors. See bug 236843.WebView on iOS: Doesn't support public static fields. See bug 194095.
javascript.classes.static 📋Safari9/30/2015 Chrome Android3/9/2016161
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Opera: Strict mode is required.Opera Android: Strict mode is required.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.classes.static.class_fields 📋Chrome Android1/29/2019 Safari4/26/2021818
javascript.classes.static.initialization_blocks 📋Chrome Android9/21/2021 Safari3/27/2023552
javascript.functions 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.functions.arguments 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.functions.arguments.@@iterator 📋Safari9/30/2015 Chrome Android7/27/2016301
javascript.functions.arguments.callee 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.functions.arguments.length 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.functions.arrow_functions 📋Chrome Android9/1/2015 Safari9/20/2016385
Firefox: The initial implementation of arrow functions in Firefox made them automatically strict. This has been changed as of Firefox 24. The use of 'use strict'; is now required.Firefox: Before Firefox 39, a line terminator (\n) was incorrectly allowed after arrow function arguments. This has been fixed to conform to the ES2015 specification and code like () \n => {} will now throw a SyntaxError in this and later versions.Firefox for Android: The initial implementation of arrow functions in Firefox for Android made them automatically strict. This has been changed as of Firefox for Android 24. The use of 'use strict'; is now required.Firefox for Android: Before Firefox for Android 39, a line terminator (\n) was incorrectly allowed after arrow function arguments. This has been fixed to conform to the ES2015 specification and code like () \n => {} will now throw a SyntaxError in this and later versions.
javascript.functions.arrow_functions.trailing_comma Safari9/20/2016 Chrome Android4/25/2017217
javascript.functions.block_level_functions Chrome Android3/9/2016 Safari9/20/2016195
javascript.functions.default_parameters 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.functions.default_parameters.destructured_parameter_with_default_value_assignment Chrome Android3/9/2016 Safari9/20/2016195
javascript.functions.default_parameters.parameters_without_defaults_after_default_parameters Chrome Android3/9/2016 Safari9/20/2016195
javascript.functions.get 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.functions.get.computed_property_names Chrome Android10/14/2015 Safari3/21/2016159
javascript.functions.method_definitions 📋Chrome Android11/12/2014 Safari9/30/2015322
javascript.functions.method_definitions.async_generator_methods Chrome Android12/5/2017 Safari9/17/2018286
javascript.functions.method_definitions.async_methods Chrome Android12/6/2016 Safari3/27/2017111
javascript.functions.method_definitions.generator_methods_not_constructable Chrome Android4/15/2015 Safari3/21/2016341
javascript.functions.rest_parameters 📋Chrome Android12/2/2015 Safari9/20/2016293
javascript.functions.rest_parameters.destructuring Chrome Android3/9/2016 Safari9/20/2016195
javascript.functions.set 📋Safari10/26/2007 Chrome Android6/27/20121706
javascript.functions.set.computed_property_names Chrome Android10/14/2015 Safari3/21/2016159
javascript.grammar.array_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.binary_numeric_literals 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.grammar.boolean_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.decimal_numeric_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.hashbang_comments 📋Chrome Android4/24/2019 Safari3/24/2020335
javascript.grammar.hexadecimal_escape_sequences 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.hexadecimal_numeric_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.null_literal 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.numeric_separators 📋Chrome Android6/4/2019 Safari9/19/2019107
javascript.grammar.octal_numeric_literals 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.grammar.regular_expression_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.shorthand_object_literals Chrome Android5/27/2015 Safari9/30/2015126
javascript.grammar.string_literals 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.template_literals 📋Chrome Android3/11/2015 Safari9/30/2015203
javascript.grammar.template_literals.template_literal_revision Safari9/19/2017 Chrome Android10/24/201735
javascript.grammar.trailing_commas 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.trailing_commas.trailing_commas_in_dynamic_import 📋Chrome Android5/25/2021 Safari9/20/2021118
Node.js: The second parameter no longer throws a parser error, but the --experimental-json-modules flag is still needed to load JSON modules.
javascript.grammar.trailing_commas.trailing_commas_in_functions Safari9/20/2016 Chrome Android4/25/2017217
javascript.grammar.trailing_commas.trailing_commas_in_object_literals Safari10/26/2007 Chrome Android6/27/20121706
javascript.grammar.unicode_escape_sequences 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.grammar.unicode_point_escapes 📋Chrome Android7/29/2015 Safari9/30/201563
javascript.operators.addition 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.addition_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.async_function 📋Chrome Android12/6/2016 Safari3/27/2017111
javascript.operators.async_generator_function 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.operators.await 📋Chrome Android12/6/2016 Safari3/27/2017111
javascript.operators.await.top_level 📋Chrome Android3/2/2021 Safari9/20/2021202
Node.js: Not supported in CommonJS modules.Safari: Doesn't support multiple modules simultaneously importing a module containing a top-level await (see bug 242740).Safari on iOS: Doesn't support multiple modules simultaneously importing a module containing a top-level await (see bug 242740).WebView on iOS: Doesn't support multiple modules simultaneously importing a module containing a top-level await (see bug 242740).
javascript.operators.bitwise_and 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_and_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_not 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_or 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_or_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_xor 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.bitwise_xor_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.class 📋Safari10/22/2013 Chrome Android4/15/2015540
javascript.operators.comma 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.conditional 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.decrement 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.operators.delete 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.destructuring 📋Safari10/16/2014 Chrome Android3/9/2016510
Firefox: Firefox provided a non-standard destructuring implementation from Firefox 2 to 40.Firefox for Android: Firefox for Android provided a non-standard destructuring implementation from Firefox for Android 4 to 40.
javascript.operators.destructuring.computed_property_names Chrome Android3/9/2016 Safari9/20/2016195
javascript.operators.destructuring.rest_in_arrays Chrome Android3/9/2016 Safari3/21/201612
javascript.operators.destructuring.rest_in_objects Chrome Android8/1/2017 Safari4/12/2018254
javascript.operators.division 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.division_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.equality 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.exponentiation 📋Chrome Android7/27/2016 Safari3/27/2017243
javascript.operators.exponentiation_assignment 📋Chrome Android7/27/2016 Safari3/27/2017243
javascript.operators.function 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.function.trailing_comma Safari9/20/2016 Chrome Android4/25/2017217
javascript.operators.generator_function 📋Chrome Android3/9/2016 Safari9/20/2016195
javascript.operators.generator_function.trailing_comma Safari9/20/2016 Chrome Android4/25/2017217
javascript.operators.greater_than 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.greater_than_or_equal 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.grouping 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.import 📋Chrome Android12/5/2017 Safari4/12/2018128
Deno: Bundled Deno applications (using deno compile) do not support dynamic importsNode.js: Dynamic import can be used in either CommonJS or ES module files, to import either CommonJS or ES module files. See Node's ECMAScript Modules documentation for more details.Node.js: Dynamic import can be used in either CommonJS or ES module files, to import either CommonJS or ES module files. See Node's ECMAScript Modules documentation for more details.
javascript.operators.import.options_parameter 📋Chrome Android5/25/2021 Safari9/20/2021118
Node.js: The second parameter no longer throws a parser error, but the --experimental-json-modules flag is still needed to load JSON modules.
javascript.operators.import.worker_support Chrome Android2/4/2020 Safari9/20/2021594
javascript.operators.import_meta 📋Chrome Android1/23/2018 Safari4/12/201879
javascript.operators.import_meta.resolve 📋Chrome Android9/2/2022 Safari3/27/2023206
Node.js: Returns a URL object instead of a string.
javascript.operators.in 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.increment 📋Safari6/8/2009 Chrome Android6/27/20121115
javascript.operators.inequality 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.instanceof 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.left_shift 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.left_shift_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.less_than 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.less_than_or_equal 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.logical_and 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.logical_and_assignment 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.operators.logical_not 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.logical_or 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.logical_or_assignment 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.operators.multiplication 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.multiplication_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.new 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.new_target 📋Chrome Android10/14/2015 Safari9/19/2017706
javascript.operators.null 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.nullish_coalescing 📋Chrome Android2/4/2020 Safari3/24/202049
javascript.operators.nullish_coalescing_assignment 📋Chrome Android8/25/2020 Safari9/16/202022
javascript.operators.object_initializer 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.object_initializer.computed_property_names Safari10/16/2014 Chrome Android12/2/2015412
javascript.operators.object_initializer.shorthand_method_names Safari9/30/2015 Chrome Android12/2/201563
javascript.operators.object_initializer.shorthand_property_names Safari9/30/2015 Chrome Android12/2/201563
javascript.operators.object_initializer.spread_properties Chrome Android8/1/2017 Safari4/12/2018254
javascript.operators.optional_chaining 📋Chrome Android2/4/2020 Safari3/24/202049
javascript.operators.property_accessors 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.remainder 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.remainder_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.right_shift 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.right_shift_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.spread 📋Safari10/16/2014 Chrome Android10/14/2015363
javascript.operators.spread.spread_in_arrays 📋Safari10/16/2014 Chrome Android10/14/2015363
javascript.operators.spread.spread_in_function_calls 📋Safari10/16/2014 Chrome Android10/14/2015363
javascript.operators.spread.spread_in_object_literals 📋Chrome Android8/1/2017 Safari4/12/2018254
javascript.operators.strict_equality 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.strict_inequality 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.subtraction 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.subtraction_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.super 📋Safari10/22/2013 Chrome Android4/15/2015540
javascript.operators.this 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.typeof 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.unary_negation 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.unary_plus 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.unsigned_right_shift 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.unsigned_right_shift_assignment 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.operators.void 📋Safari3/18/2008 Chrome Android6/27/20121562
javascript.operators.yield 📋Chrome Android11/12/2014 Safari9/20/2016678
Firefox: Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.Firefox: Starting with Firefox 29, an IteratorResult object returned for completed generator function.Firefox for Android: Starting with Firefox for Android 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.Firefox for Android: Starting with Firefox for Android 29, an IteratorResult object returned for completed generator function.
javascript.operators.yield_star 📋Chrome Android11/12/2014 Safari9/20/2016678
Firefox: Starting with Firefox 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.Firefox for Android: Starting with Firefox for Android 33, the parsing of the yield expression has been updated to conform with the ES2015 specification.
javascript.regular_expressions.backreference 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.capturing_group 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.character_class 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.character_class_escape 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.character_escape 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.character_escape.unicode Chrome Android4/13/2016 Safari9/20/2016160
javascript.regular_expressions.disjunction 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.input_boundary_assertion 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.literal_character 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.lookahead_assertion 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.lookbehind_assertion 📋Chrome Android10/24/2017 Safari3/27/20231980
javascript.regular_expressions.modifier 📋Chrome Android5/14/2024 Safari9/15/2025489
javascript.regular_expressions.named_backreference 📋Chrome Android1/23/2018 Safari4/12/201879
javascript.regular_expressions.named_capturing_group 📋Chrome Android1/23/2018 Safari4/12/201879
javascript.regular_expressions.named_capturing_group.duplicate_named_capturing_groups Safari9/18/2023 Chrome Android5/14/2024239
javascript.regular_expressions.non_capturing_group 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.quantifier 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.unicode_character_class_escape 📋Chrome Android1/23/2018 Safari4/12/201879
javascript.regular_expressions.wildcard 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.regular_expressions.word_boundary_assertion 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.async_function 📋Chrome Android12/6/2016 Safari3/27/2017111
javascript.statements.async_generator_function 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.statements.block 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.break 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.class 📋Chrome Android3/9/2016 Safari3/27/2017383
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Opera: Strict mode is required.Opera Android: Strict mode is required.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.statements.const 📋Safari7/20/2011 Chrome Android2/27/2013588
Firefox: Before Firefox 13, const is implemented, but re-assignment is not failing.Firefox: Before Firefox 46, a TypeError was thrown on redeclaration instead of a SyntaxError.Firefox for Android: Before Firefox for Android 14, const is implemented, but re-assignment is not failing.Firefox for Android: Before Firefox for Android 46, a TypeError was thrown on redeclaration instead of a SyntaxError.
javascript.statements.continue 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.debugger 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.statements.do_while 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.empty 📋Safari6/7/2010 Chrome Android6/27/2012751
javascript.statements.export 📋Safari3/27/2017 Chrome Android9/5/2017162
Node.js: Modules must either have a filename ending in .mjs, or the nearest parent package.json file must contain "type": "module". See Node's ECMAScript Modules documentation for more details.
javascript.statements.export.arbitrary_module_namespace_identifier_names Chrome Android1/19/2021 Safari4/26/202197
javascript.statements.export.default 📋Safari3/27/2017 Chrome Android9/5/2017162
Node.js: Modules must either have a filename ending in .mjs, or the nearest parent package.json file must contain "type": "module". See Node's ECMAScript Modules documentation for more details.
javascript.statements.export.namespace 📋Chrome Android1/29/2019 Safari4/26/2021818
Node.js: Modules must either have a filename ending in .mjs, or the nearest parent package.json file must contain "type": "module". See Node's ECMAScript Modules documentation for more details.
javascript.statements.for 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.for_await_of 📋Chrome Android12/5/2017 Safari9/17/2018286
javascript.statements.for_in 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.for_of 📋Safari10/22/2013 Chrome Android10/8/2014351
Firefox: Before Firefox 51, using the for...of loop construct with the const keyword threw a SyntaxError ("missing = in const declaration").Firefox for Android: Before Firefox for Android 51, using the for...of loop construct with the const keyword threw a SyntaxError ("missing = in const declaration").
javascript.statements.for_of.async_iterators Safari10/22/2013 Chrome Android12/5/20171505
javascript.statements.for_of.closing_iterators Safari10/22/2013 Chrome Android6/8/2016960
javascript.statements.function 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.function.trailing_comma_in_parameters Safari9/20/2016 Chrome Android4/25/2017217
javascript.statements.generator_function 📋Chrome Android11/12/2014 Safari9/20/2016678
javascript.statements.generator_function.IteratorResult_object Chrome Android3/9/2016 Safari9/20/2016195
javascript.statements.generator_function.not_constructable_with_new Chrome Android4/13/2016 Safari9/20/2016160
javascript.statements.generator_function.trailing_comma_in_parameters Safari9/20/2016 Chrome Android4/25/2017217
javascript.statements.if_else 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.import 📋Safari3/27/2017 Chrome Android9/5/2017162
Node.js: Modules must either have a filename ending in .mjs, or the nearest parent package.json file must contain "type": "module". See Node's ECMAScript Modules documentation for more details.Node.js: Modules must either have a filename ending in .mjs, or the nearest parent package.json file must contain "type": "module". See Node's ECMAScript Modules documentation for more details.
javascript.statements.import.arbitrary_module_namespace_identifier_names Chrome Android1/19/2021 Safari4/26/202197
javascript.statements.import.import_attributes 📋Safari12/11/2023 Chrome Android3/19/202499
javascript.statements.import.import_attributes.type_json Safari12/11/2023 Chrome Android3/19/202499
javascript.statements.import.service_worker_support Chrome Android5/25/2021 Safari9/20/2021118
javascript.statements.import.worker_support Chrome Android2/4/2020 Safari9/20/2021594
javascript.statements.label 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.let 📋Chrome Android3/9/2016 Safari9/20/2016195
Chrome: Strict mode is required.Chrome Android: Strict mode is required.Edge: In Edge 12 and 13, let within a for loop initializer does not create a separate variable for each loop iteration as defined by ES2015. Instead, it behaves as though the loop were wrapped in a scoping block with the let immediately before the loop.Firefox: Before Firefox 44, let is only available to code blocks in HTML wrapped in a <script type="application/javascript;version=1.7"> block (or higher version) and has different semantics (e.g. no temporal dead zone).Firefox: Before Firefox 46, a TypeError is thrown on redeclaration instead of a SyntaxError.Firefox: Firefox 54 adds support of let in workers.Firefox for Android: Before Firefox for Android 44, let is only available to code blocks in HTML wrapped in a <script type="application/javascript;version=1.7"> block (or higher version) and has different semantics (e.g. no temporal dead zone).Firefox for Android: Before Firefox for Android 46, a TypeError is thrown on redeclaration instead of a SyntaxError.Firefox for Android: Firefox for Android 54 adds support of let in workers.Internet Explorer: In Internet Explorer, let within a for loop initializer does not create a separate variable for each loop iteration as defined by ES2015. Instead, it behaves as though the loop were wrapped in a scoping block with the let immediately before the loop.Samsung Internet: Strict mode is required.WebView Android: Strict mode is required.
javascript.statements.return 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.switch 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.throw 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.try_catch 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.try_catch.optional_catch_binding Safari4/12/2018 Chrome Android4/17/20185
javascript.statements.var 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.while 📋Safari6/23/2003 Chrome Android6/27/20123292
javascript.statements.with 📋Safari6/23/2003 Chrome Android6/27/20123292