Finished Proposals
March 31, 2026 · View on GitHub
Finished proposals are proposals that have reached stage 4, and are (or soon will be) included in the latest draft of the specification.
| Proposal | Author | Champion(s) | Meeting Notes | Expected Publication Year |
|---|---|---|---|---|
| Temporal | Philipp Dunkel Maggie Johnson-Pint Matt Johnson-Pint Brian Terlson Shane Carr Ujjwal Sharma Philip Chimento Jason Williams Justin Grant | Philipp Dunkel Maggie Johnson-Pint Matt Johnson-Pint Brian Terlson Shane Carr Ujjwal Sharma Philip Chimento Jason Williams Justin Grant | -2025‑09 -2024‑10 -2024‑02 -2023‑03 -2022‑06 -2021‑03 -2020‑09 -2018‑09 | 2027 |
Upsert | Daniel Minor Lauritz Thoresen Angeltveit Jonas Haukenes Sune Lianes Vetle Larsen Mathias Hop Ness | Daniel Minor | -2026‑01 -2025‑07 -2025‑04 -2024‑12 -2024‑10 -2020‑07 -2019‑10 | 2026 |
| JSON.parse source text access | Richard Gibson | Richard Gibson | -2025‑11 -2023‑09 -2023‑01 -2022‑06 -2021‑10 -2020‑07 -2018‑09 | 2026 |
| Iterator Sequencing | Michael Ficarra | Michael Ficarra | -2025‑11 -2025‑07 -2025‑05 -2024‑12 -2024‑10 -2024‑06 -2024‑02 -2023‑11 -2023‑09 | 2026 |
| Uint8Array to/from Base64 | Kevin Gibbons | Kevin Gibbons | -2025‑07 -2024‑06 -2024‑02 -2023‑11 -2023‑09 -2023‑07 -2023‑05 -2021‑07 | 2026 |
Math.sumPrecise | Kevin Gibbons | Kevin Gibbons | -2025‑07 -2024‑10 -2024‑04 -2024‑02 -2023‑11 | 2026 |
Error.isError | Jordan Harband | Jordan Harband | -2025‑05 -2024‑12 -2024‑10 -2024‑07 -2024‑06 -2024‑04 -2016‑03 | 2026 |
Array.fromAsync | J.S. Choi | J.S. Choi | -2025‑05 -2025‑04 -2023‑05 -2022‑09 -2022‑01 -2021‑12 -2021‑10 -2021‑08 | 2026 |
RegExp.escape | Domenic Denicola Benjamin Gruenbaum Jordan Harband | Jordan Harband Kevin Gibbons | -2025‑02 -2024‑07 -2024‑04 -2024‑02 -2023‑09 -2021‑01 -2015‑07 | 2025 |
Redeclarable global eval-introduced vars | Shu-yu Guo | Shu-yu Guo | -2025‑02 -2024‑04 | 2025 |
Float16 on TypedArrays, DataView, Math.f16round | Leo Balter | Leo Balter Kevin Gibbons | -2025‑02 -2023‑05 -2023‑03 -2017‑05 | 2025 |
Promise.try | Jordan Harband | Jordan Harband | -2024‑10 -2024‑06 -2024‑04 -2024‑02 -2016‑11 | 2025 |
| Sync Iterator helpers | Gus Caplan | Michael Ficarra Jonathan Keslin Kevin Gibbons | -2024‑10 -2024‑12 -2023‑11 -2023‑07 -2023‑05 [2] -2023‑03 -2022‑11 -2022‑09 -2022‑07 -2021‑08 -2020‑07 -2020‑06 -2019‑01 | 2025 |
| JSON Modules | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg | -2024‑10 -2024‑06 -2023‑07 -2021‑01 [2] -2020‑11 [2] -2020‑09 -2020‑07 | 2025 |
| Import Attributes | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg | Sven Sauleau Dan Clark Daniel Ehrenberg Nicolò Ribaudo | -2024‑10 -2024‑07 -2023‑09 -2023‑07 -2023‑03 -2020‑06 [2] -2020‑02 -2019‑12 [2] | 2025 |
| RegExp Modifiers | Ron Buckton | Ron Buckton | -2024‑10 -2023‑11 -2023‑07 -2022‑06 -2021‑12 -2021‑10 | 2025 |
| New Set methods | Michał Wadas Sathya Gunasekaran Kevin Gibbons | Kevin Gibbons | -2024‑04 -2024‑02 -2023‑07 -2023‑03 -2022‑11 -2022‑09 -2022‑07 -2019‑01 -2018‑05 | 2025 |
| Duplicate named capture groups | Kevin Gibbons | Kevin Gibbons | -2024‑04 -2023‑07 -2022‑06 [2] | 2025 |
| ArrayBuffer transfer | Shu-yu Guo Jordan Harband Yagiz Nizipli | Shu-yu Guo Jordan Harband Yagiz Nizipli | -2024‑02 -2023‑01 -2018‑07 | 2024 |
Promise.withResolvers | Peter Klecha | Peter Klecha | -2023‑11 -2023‑07 -2023‑05 -2023‑03 | 2024 |
| Array Grouping | Justin Ridgewell | Justin Ridgewell Jordan Harband | -2023‑11 -2023‑01 -2021‑07 | 2024 |
| Resizable and growable ArrayBuffers | Shu-yu Guo | Shu-yu Guo | -2023‑09 -2022‑03 -2021‑01 -2020‑09 -2020‑07 | 2024 |
| RegExp v flag with set notation + properties of strings | Markus Scherer Mathias Bynens | Mathias Bynens | -2023‑05 -2022‑09 | 2024 |
Atomics.waitAsync | Lars Hansen | Shu-yu Guo Lars Hansen | -2023‑05 -2020‑03 -2019‑12 -2017‑09 | 2024 |
| Well-Formed Unicode Strings | Guy Bedford Bradley Farias | Guy Bedford Bradley Farias Michael Ficarra | -2023‑05 -2022‑09 | 2024 |
| Change Array by Copy | Ashley Claymore Robin Ricard | Ashley Claymore Robin Ricard | -2022‑03 -2022‑07 -2021‑10 | 2023 |
| Symbols as WeakMap keys | Daniel Ehrenberg Richard Button Robin Ricard Leo Balter Rick Waldron Caridy Patiño | Daniel Ehrenberg Richard Button Robin Ricard Leo Balter Rick Waldron Caridy Patiño | -2023‑01 -2022‑11 -2022‑06 -2021‑12 | 2023 |
| Hashbang Grammar | Bradley Farias | Bradley Farias | -2022‑07 -2018‑03 | 2023 |
| Array find from last | Wenlu Wang | Wenlu Wang Daniel Rosenwasser | -2022‑06 -2022‑03 -2021‑01 | 2023 |
| Error Cause | Chengzhong Wu | Chengzhong Wu Hemanth HM | -2021‑10 -2021‑03 -2020‑09 | 2022 |
| Class Static Block | Ron Buckton | Ron Buckton | -2021‑08 -2021‑01 | 2022 |
Accessible Object.prototype.hasOwnProperty | Jamie Kyle | Tierney Cyren Jamie Kyle | -2021‑08 -2021‑05 | 2022 |
.at() | Shu-yu Guo Tab Atkins | Shu-yu Guo Tab Atkins | -2021‑08 -2020‑11 -2020‑09 | 2022 |
| Ergonomic brand checks for Private Fields | Jordan Harband | Jordan Harband | -2021‑07 -2021‑04 | 2022 |
Top-level await | Myles Borins Yulia Startsev Daniel Ehrenberg Guy Bedford Ms2ger | Myles Borins Yulia Startsev | -2021‑05 -2019‑06 | 2022 |
| RegExp Match Indices | Ron Buckton | Ron Buckton | -2021‑05 -2021‑04 | 2022 |
| Class Fields (Private instance methods and accessors, Class Public Instance Fields & Private Instance Fields, Static class fields and private static methods) | Daniel Ehrenberg | Daniel Ehrenberg Kevin Gibbons | -2021‑04 -2021‑01 | 2022 |
| Numeric separators | Sam Goto Rick Waldron | Sam Goto Rick Waldron Leo Balter | -2020‑07 -2019‑12 | 2021 |
| Logical Assignment Operators | Justin Ridgewell | Justin Ridgewell Hemanth HM | -2020‑07 -2020‑03 | 2021 |
| WeakRefs | Dean Tribble Sathya Gunasekaran | Dean Tribble Mark Miller Till Schneidereit Sathya Gunasekaran Daniel Ehrenberg | -2020‑07 -2019‑06 | 2021 |
Promise.any | Mathias Bynens Kevin Gibbons Sergey Rubanov | Mathias Bynens | -2020‑07 -2020‑02 | 2021 |
String.prototype.replaceAll | Peter Marshall Jakob Gruber Mathias Bynens | Mathias Bynens | -2020‑06 -2019‑10 | 2021 |
import.meta | Domenic Denicola | Gus Caplan | -2020‑03 -2018‑09 | 2020 |
| Nullish coalescing Operator | Gabriel Isenberg | Gabriel Isenberg Justin Ridgewell Daniel Rosenwasser | -2019‑12 -2019‑07 | 2020 |
| Optional Chaining | Gabriel Isenberg Claude Pache Dustin Savery | Gabriel Isenberg Dustin Savery Justin Ridgewell Daniel Rosenwasser | -2019‑12 -2019‑07 | 2020 |
for-in mechanics | Kevin Gibbons | Kevin Gibbons | -2019‑12 -2019‑06 | 2020 |
globalThis | Jordan Harband | Jordan Harband | -2019‑10 -2018‑07 | 2020 |
Promise.allSettled | Jason Williams Robert Pamely Mathias Bynens | Mathias Bynens | -2019‑07 -2019‑06 | 2020 |
BigInt | Daniel Ehrenberg | Daniel Ehrenberg | -2019‑06 -2018‑05 | 2020 |
import() | Domenic Denicola | Domenic Denicola | -2019‑06 -2018‑07 | 2020 |
String.prototype.matchAll | Jordan Harband | Jordan Harband | -2019‑03 -2018‑05 | 2020 |
Array.prototype.{flat,flatMap} | Brian Terlson Michael Ficarra Mathias Bynens | Brian Terlson Michael Ficarra | -2019‑01 -2018‑05 | 2019 |
String.prototype.{trimStart,trimEnd} | Sebastian Markbåge | Sebastian Markbåge Mathias Bynens | -2019‑01 -2017‑07 | 2019 |
Well-formed JSON.stringify | Richard Gibson | Mathias Bynens | -2019‑01 -2018‑05 | 2019 |
Object.fromEntries | Darien Maillet Valentine | Jordan Harband Kevin Gibbons | -2019‑01 -2018‑05 | 2019 |
Function.prototype.toString revision | Michael Ficarra | Michael Ficarra | -2018‑11 -2017‑05 | 2019 |
Symbol.prototype.description | Michael Ficarra | Michael Ficarra | -2018‑11 -2017‑05 | 2019 |
| JSON superset | Richard Gibson | Mark Miller Mathias Bynens | -2018‑05 -2017‑09 | 2019 |
Optional catch binding | Michael Ficarra | Michael Ficarra | -2018‑05 -2017‑07 | 2019 |
| Asynchronous Iteration | Domenic Denicola | Domenic Denicola | -2018‑01 -2017‑07 | 2018 |
Promise.prototype.finally | Jordan Harband | Jordan Harband | -2018‑01 -2017‑07 | 2018 |
| RegExp Unicode Property Escapes | Mathias Bynens | Brian Terlson Daniel Ehrenberg Mathias Bynens | -2018‑01 -2017‑05 | 2018 |
| RegExp Lookbehind Assertions | Gorkem Yakin Nozomu Katō Daniel Ehrenberg | Daniel Ehrenberg Mathias Bynens | -2018‑01 -2017‑01 | 2018 |
| Rest/Spread Properties | Sebastian Markbåge | Sebastian Markbåge | -2018‑01 -2017‑07 | 2018 |
| RegExp named capture groups | Gorkem Yakin Daniel Ehrenberg | Daniel Ehrenberg Brian Terlson Mathias Bynens | -2017‑11 -2017‑05 | 2018 |
s (dotAll) flag for regular expressions | Mathias Bynens | Brian Terlson Mathias Bynens | -2017‑11 -2017‑05 | 2018 |
| Lifting template literal restriction | Tim Disney | Tim Disney | -2017‑03 -2016‑11 | 2018 |
| Shared memory and atomics | Lars T Hansen | Lars T Hansen | -2017‑01 -2016‑05 | 2017 |
| Async functions | Brian Terlson | Brian Terlson | -2016‑07 -2015‑07 | 2017 |
| Trailing commas in function parameter lists and calls | Jeff Morrison | Jeff Morrison | -2016‑07 -2016‑01 | 2017 |
Object.getOwnPropertyDescriptors | Jordan Harband Andrea Giammarchi | Jordan Harband Andrea Giammarchi | -2016‑05 -2015‑09 | 2017 |
| String padding | Jordan Harband | Jordan Harband Rick Waldron | -2016‑05 -2015‑07 | 2017 |
Object.values/Object.entries | Jordan Harband | Jordan Harband | -2016‑03 -2015‑03 | 2017 |
| Exponentiation operator | Rick Waldron | Rick Waldron | -2016‑01 -2015‑01 | 2016 |
Array.prototype.includes | Domenic Denicola | Domenic Denicola Rick Waldron | -2015‑11 -2015‑07 -2014‑11 -2014‑09 -2014‑07 -2014‑04 | 2016 |
See also the active proposals, stage 1 proposals, stage 0 proposals, and inactive proposals documents.