BASELINE NowYouCanUse.com
Web Platform Baseline Status Breakdown Total Features: 1191
Search: Reset ×
Categories: All CSS (101) HTML elements (98) Selectors (46) JavaScript (43) Forms (40)
WebGL extensions (37) WebAssembly (22) Media queries (21) Fonts (19) Performance (19) Text (19) Scrolling (18) Arrays (17) Layout (17) HTML (16) Progressive web app (15) Typed arrays (14) Units (14) Canvas (13) Background (12) Color types (12) Media elements (12) Strings (12) Clipping, shapes, and masking (11) Security (11) Web components (11) WebXR (11) Typographic font features (10) Animation (9) Internationalization (9) Reporting (9) Text wrap (9) Clipboard (8) Workers (8) Containment (7) DOM (7) Fetch (7) JavaScript modules (7) Print media (7) Sensors (7) CSS object models (6) Image formats (6) Iterators (6) Landmark elements (6) Positioning (6) Promises (6) SVG (6) Storage (6) Streams (6) Credential management (5) Custom elements (5) Explicit defaults (5) Font synthesis (5) HTTP (5) Messaging (5) Multi-column (5) Resource hints (5) Ruby (5) Selection (5) Speech (5) Transitions (CSS) (5) View transitions (5) Web audio (5) WebGL (5) Container queries (4) Cookies (4) Counters (4) File system access (4) Flexbox (4) Gamepad (4) Grid (4) Images (4) Lists (4) Primitive types (4) Regular expressions (4) WebDriver (4) WebRTC (4) Blend mode (3) Borders and outlines (3) Gradients (3) Image scaling (3) JSON (3) Maps (3) MathML (3) Payments (3) Reading order (3) Scroll markers (3) Transforms (3) WebAuthn (3) WebGPU (3) White space (3) Worklets (3) XML (3) Collections (2) Compute pressure (2) Geolocation (2) IndexedDB (2) Parsing and serialization (2) Resource integrity (2) Sets (2) Text fragments (2) WebMCP (2) CSS environment variables (1)
Showing 30 of 43 features

2026

1 features
• April 2026
Newly Available

The Math.sumPrecise() static method returns the sum of an iterable of numbers. It avoids the precision loss of intermediate partial sums, as found using reduce() or a loop to add together an array of values.

Chrome 147
Firefox 137
Safari 26.2
Edge 147
Baseline Date: Apr 10, 2026

2025

2 features
• November 2025

The Atomics.waitAsync() static method waits for a value in a shared memory location, providing a promise when the expected value is not yet in memory. The waitAsync() method is a non-blocking alternative to Atomics.wait().

Chrome 90
Firefox 145
Safari 16.4
Edge 90
Baseline Date: Nov 11, 2025
• April 2025
Newly Available

The Atomics.pause() static method gives a hint to the CPU that the code calling the method is in a short-duration wait for shared memory, known as spinning or a spinlock.

Chrome 133
Firefox 137
Safari 18.4
Edge 133
Baseline Date: Apr 1, 2025

2024

2 features
• July 2024
Newly Available

The resize() method of an ArrayBuffer and the grow() method of a SharedArrayBuffer, constructed with the maxByteLength option, changes the size of the buffer in place.

Chrome 111
Firefox 128
Safari 16.4
Edge 111
Baseline Date: Jul 9, 2024
• March 2024

The transfer() and transferToFixedLength() methods of ArrayBuffer move a buffer from one context to another (for example, to a worker).

Chrome 114
Firefox 122
Safari 17.4
Edge 114
Baseline Date: Mar 5, 2024

2022

1 features
• March 2022
Widely Available

The Object.hasOwn() static method checks whether an object has a given property. It's a more robust alternative to the Object.prototype.hasOwnProperty() method.

Chrome 93
Firefox 92
Safari 15.4
Edge 93
Baseline Date: Mar 14, 2022

2021

4 features
• December 2021

The SharedArrayBuffer object represents bytes shared between multiple workers and the main thread. The Atomics object safely accesses SharedArrayBuffer data to make sure predictable values are read and written and that operations are not interrupted.

Chrome 68
Firefox 79
Safari 15.2
Edge 79
Baseline Date: Dec 13, 2021
• September 2021
Widely Available

The BigInt64Array and BigUint64Array typed arrays represent 64-bit integers, signed and unsigned respectively.

Chrome 67
Firefox 68
Safari 15
Edge 79
Baseline Date: Sep 20, 2021
Widely Available

The cause property of errors records the specific original cause of the error, particularly for errors that have been re-thrown.

Chrome 93
Firefox 91
Safari 15
Edge 93
Baseline Date: Sep 20, 2021
• April 2021
Widely Available

The WeakRef and FinalizationRegistry objects hold references to garbage-collectable objects without creating strong references that prevent their garbage collection.

Chrome 84
Firefox 79
Safari 14.1
Edge 84
Baseline Date: Apr 26, 2021

2020

11 features
• September 2020
Widely Available

The BigInt JavaScript type represents integers of any size, including integers too large for the primitive Number type.

Chrome 67
Firefox 68
Safari 14
Edge 79
Baseline Date: Sep 16, 2020
Widely Available

The logical AND assignment (&&=) and the logical OR assignment (||=) operators short-circuit the respective binary logical operators.

Chrome 85
Firefox 79
Safari 14
Edge 85
Baseline Date: Sep 16, 2020
Widely Available

The nullish coalescing (??) and nullish coalescing assignment (??=) operators return (or assign) its right-hand side operand when its left-hand side operand is null or undefined, and otherwise returns its left-hand side operand.

Chrome 85
Firefox 79
Safari 14
Edge 85
Baseline Date: Sep 16, 2020
• July 2020
Widely Available

To improve readability for numeric literals, underscores (_) can be used as separators. For example, 1_050.95 is equivalent to 1050.95.

Chrome 75
Firefox 70
Safari 13
Edge 79
Baseline Date: Jul 28, 2020
• March 2020
Widely Available

The #! comment at the absolute start of a script or module is treated as a normal comment and is ignored by the JavaScript engine.

Chrome 74
Firefox 67
Safari 13.1
Edge 79
Baseline Date: Mar 24, 2020
• January 2020
Widely Available

Async generator functions (async function*) create iterators that return multiple promises, one after another, on-demand.

Chrome 63
Firefox 57
Safari 12
Edge 79
Baseline Date: Jan 15, 2020
Widely Available

The destructuring assignment syntax is a JavaScript expression that unpacks values from arrays, or properties from objects, into distinct variables.

Chrome 60
Firefox 55
Safari 11.1
Edge 79
Baseline Date: Jan 15, 2020

Omit the binding parameter of a catch clause when you don't need information about the exception in a try ... catch statement.

Chrome 66
Firefox 58
Safari 11.1
Edge 79
Baseline Date: Jan 15, 2020
Widely Available

The spread (...) syntax allows an iterable, such as an array or string, to be expanded in places where zero or more arguments (for function calls) or elements (for array literals) are expected.

Chrome 60
Firefox 55
Safari 11.1
Edge 79
Baseline Date: Jan 15, 2020
Widely Available

Template literals are literals delimited with backtick (`) characters, allowing for multi-line strings, string interpolation with embedded expressions, and special constructs called tagged templates.

Chrome 62
Firefox 53
Safari 11
Edge 79
Baseline Date: Jan 15, 2020
Widely Available

The globalThis property accesses the global this value (and hence the global object itself) across environments.

Chrome 71
Firefox 65
Safari 12.1
Edge 79
Baseline Date: Jan 15, 2020

2017

2 features
• April 2017
Widely Available

The async and await keywords allow you to use the asynchronous, promise-based behavior of a function without using promise chains.

Chrome 55
Firefox 52
Safari 10.1
Edge 15
Baseline Date: Apr 5, 2017
• March 2017

The exponentiation (**) operator returns the result of raising the first operand to the power of the second operand.

Chrome 52
Firefox 52
Safari 10.1
Edge 14
Baseline Date: Mar 27, 2017

2016

4 features
• September 2016
Widely Available

Generator functions (function*) create iterators that return multiple values, one after another, on-demand.

Chrome 39
Firefox 26
Safari 10
Edge 13
Baseline Date: Sep 20, 2016
Widely Available

The let and const declarations define block-scoped variables.

Chrome 49
Firefox 44
Safari 10
Edge 14
Baseline Date: Sep 20, 2016
Widely Available

The Proxy and Reflect JavaScript built-ins intercept and define custom behavior for fundamental language operations (such as property lookup, assignment, enumeration, or function invocation).

Chrome 49
Firefox 18
Safari 10
Edge 12
Baseline Date: Sep 20, 2016
• March 2016
Widely Available

Classes are an object-oriented syntax for JavaScript prototypes.

Chrome 42
Firefox 45
Safari 9
Edge 13
Baseline Date: Mar 8, 2016

2015

3 features
• September 2015

Unicode point escapes (\\u{}) represent Unicode characters within strings.

Chrome 44
Firefox 40
Safari 9
Edge 12
Baseline Date: Sep 30, 2015
• July 2015
Widely Available

Functions are series of statements that can be called and return a value. The function keyword (as in function () { }) and arrow (=>) expression create functions. The JavaScript functions protocol includes default and rest parameters and binding to this.

Chrome 1
Firefox 1
Safari 1
Edge 12
Baseline Date: Jul 29, 2015

JavaScript is a programming language that runs in browsers, usually through the <script> element. JavaScript has changed over many years. This feature represents the oldest language features, such as built-in objects, statements, and operators. Also known as ECMAScript.

Chrome 5
Firefox 1
Safari 5
Edge 12
Baseline Date: Jul 29, 2015
Page 1 of 2 (43 features) Next →