The table below details some of the client-side ECMAScript features we use to provide the largest and most advanced development platform in the world.
... | Google Chrome | Microsoft Edge | Mozilla Firefox | Apple Safari | Opera | Samsung Internet | |
---|---|---|---|---|---|---|---|
Base Objects & Functions | |||||||
Blob Constructor
|
! |
5+ |
12+ |
4+ |
6+ |
11+ |
1.0+ |
PerformanceObserver Constructor
|
! |
52+ |
79+ |
57+ |
11+ |
39+ |
6.0+ |
Intl Constructor
|
! |
24+ |
12+ |
29+ |
10+ |
15+ |
1.5+ |
MutationObserver Constructor
|
! |
26+ |
12+ |
14+ |
7+ |
15+ |
1.5+ |
URLSearchParams Constructor
|
! |
49+ |
17+ |
29+ |
10.1+ |
36+ |
5.0+ |
WebSocket Constructor
|
! |
4+ |
12+ |
11+ |
5+ |
12.1+ |
1.0+ |
IntersectionObserver Constructor
|
! |
51+ |
15+ |
55+ |
12.1+ |
38+ |
5.0+ |
queueMicrotask Function
|
! |
71+ |
79+ |
69+ |
12.1+ |
58+ |
10.0+ |
TextEncoder Constructor
|
! |
38+ |
79+ |
18+ |
10.1+ |
25+ |
3.0+ |
TextDecoder Constructor
|
! |
38+ |
79+ |
19+ |
10.1+ |
25+ |
3.0+ |
customElements
|
! |
54+ |
79+ |
63+ |
10.1+ |
41+ |
6.0+ |
HTMLDetailsElement Constructor
|
! |
10+ |
79+ |
49+ |
6+ |
15+ |
1.0+ |
AbortController Constructor
|
! |
66+ |
16+ |
57+ |
12.1+ |
53+ |
9.0+ |
AbortSignal Constructor
|
! |
66+ |
16+ |
57+ |
11.1+ |
53+ |
9.0+ |
globalThis Object
|
! |
71+ |
79+ |
65+ |
12.1+ |
58+ |
10.0+ |
FormData.entries
|
! |
50+ |
18+ |
44+ |
11.1+ |
37+ |
5.0+ |
Element.toggleAttribute
|
! |
69+ |
18+ |
63+ |
12+ |
56+ |
10.0+ |
Object.fromEntries
|
! |
73+ |
79+ |
63+ |
12.1+ |
60+ |
11.0+ |
Array.flatMap
|
! |
69+ |
79+ |
62+ |
12+ |
56+ |
10.0+ |
String.trimEnd
|
! |
66+ |
79+ |
61+ |
12+ |
53+ |
9.0+ |
String.matchAll
|
! |
73+ |
79+ |
67+ |
13+ |
60+ |
11.0+ |
Polyfilled Features | |||||||
AbortSignal.abort
|
* |
93+ |
93+ |
88+ |
15+ |
79+ |
* |
AbortSignal.timeout
|
* |
* |
* |
100+ |
* |
* |
* |
AggregateError
|
* |
85+ |
85+ |
79+ |
14+ |
71+ |
14.0+ |
Array.at
|
* |
92+ |
92+ |
90+ |
15.4+ |
78+ |
16.0+ |
ClipboardItem
|
* |
66+ † |
79+ † |
* |
13.1+ |
53+ † |
9.0+ † |
Crypto.randomUUID
|
* |
92+ |
92+ |
95+ |
15.4+ |
78+ |
16.0+ |
Element.replaceChildren
|
* |
86+ |
86+ |
78+ |
14+ |
72+ |
14.0+ |
EventTarget.addEventListener signal
|
* |
90+ |
90+ |
86+ |
15+ |
76+ |
15.0+ |
navigator.clipboard
|
* |
86+ |
79+ |
* |
13.1+ |
63+ † |
12.0+ † |
HTMLFormElement.requestSubmit
|
* |
76+ |
79+ |
75+ |
* | 63+ |
12.0+ |
Object.hasOwn
|
* |
93+ |
93+ |
92+ |
15.4+ |
79+ |
* |
Promise.allSettled
|
* |
76+ |
79+ |
71+ |
13+ |
63+ |
12.0+ |
requestIdleCallback
|
* |
47+ |
79+ |
55+ |
* |
34+ |
5.0+ |
String.replaceAll
|
* |
85+ |
85+ |
77+ |
13.1+ |
71+ |
14.0+ |
Promise.any
|
* |
85+ |
85+ |
79+ |
14+ |
71+ |
14.0+ |
Native Syntax | |||||||
Exponentiation Operator
|
! |
52+ |
14+ |
52+ |
10.1+ |
39+ |
6.0+ |
Object Rest/Spead
|
! |
60+ |
79+ |
55+ |
11.1+ |
47+ |
8.2+ |
RegExp Named Capture Groups
|
! |
64+ |
79+ |
78+ |
11.1+ |
51+ |
9.0+ |
Async Generators & for await
|
! |
63+ |
79+ |
57+ |
11+ |
50+ |
8.0+ |
Optional Catch Binding
|
! |
66+ |
79+ |
58+ |
11.1+ |
53+ |
9.0+ |
Optional Chaining Operator (?.)
|
! |
80+ |
80+ |
74+ |
13.1+ |
67+ |
13.0+ |
Nullish Coalescing Operator (??)
|
! |
80+ |
80+ |
72+ |
13.1+ |
67+ |
13.0+ |
Transpiled Native Syntax | |||||||
Logical Nullish Assignment (??=)
|
** |
85+ |
85+ |
79+ |
14+ |
71+ |
14.0+ |
Public Class Fields
|
** |
72+ |
79+ |
69+ |
14.1+ |
60+ |
11.0+ |
Private Class Fields
|
** |
74+ |
79+ |
90+ |
14.1+ |
62+ |
11.0+ |
Static Class Blocks
|
** |
94+ |
94+ |
93+ |
** |
80+ |
** |
Decorators
|
** |
** |
** |
** |
** |
** |
** |