GitHub Feature Support Table

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.

Key

Required feature available in this browser.

!Required feature, not available in this browser.

*Not avaible in this browser, but polyfilled using this library.

**Not available in this browser, but transpiled to a compatible syntax.

... 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+
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+
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
**
**
**
**
**
**
**