Finished proposals are proposals that have reached stage 4, and are included in the latest draft of the specification.
Proposal | Author | Champion(s) | TC39 meeting notes | Expected Publication Year |
---|---|---|---|---|
Array.prototype.includes |
Domenic Denicola | Domenic Denicola Rick Waldron |
November 2015 | 2016 |
Exponentiation operator | Rick Waldron | Rick Waldron | January 2016 | 2016 |
Object.values /Object.entries |
Jordan Harband | Jordan Harband | March 2016 | 2017 |
String padding | Jordan Harband | Jordan Harband Rick Waldron |
May 2016 | 2017 |
Object.getOwnPropertyDescriptors |
Jordan Harband Andrea Giammarchi |
Jordan Harband Andrea Giammarchi |
May 2016 | 2017 |
Trailing commas in function parameter lists and calls | Jeff Morrison | Jeff Morrison | July 2016 | 2017 |
Async functions | Brian Terlson | Brian Terlson | July 2016 | 2017 |
Shared memory and atomics | Lars T Hansen | Lars T Hansen | January 2017 | 2017 |
Lifting template literal restriction | Tim Disney | Tim Disney | March 2017 | 2018 |
s (dotAll ) flag for regular expressions |
Mathias Bynens | Brian Terlson Mathias Bynens |
November 2017 | 2018 |
RegExp named capture groups | Gorkem Yakin Daniel Ehrenberg |
Daniel Ehrenberg Brian Terlson Mathias Bynens |
November 2017 | 2018 |
Rest/Spread Properties | Sebastian Markbåge | Sebastian Markbåge | January 2018 | 2018 |
RegExp Lookbehind Assertions | Gorkem Yakin Nozomu Katō Daniel Ehrenberg |
Daniel Ehrenberg Mathias Bynens |
January 2018 | 2018 |
RegExp Unicode Property Escapes | Mathias Bynens | Brian Terlson Daniel Ehrenberg Mathias Bynens |
January 2018 | 2018 |
Promise.prototype.finally |
Jordan Harband | Jordan Harband | January 2018 | 2018 |
Asynchronous Iteration | Domenic Denicola | Domenic Denicola | January 2018 | 2018 |
Optional catch binding |
Michael Ficarra | Michael Ficarra | May 2018 | 2019 |
JSON superset | Richard Gibson | Mark Miller Mathias Bynens |
May 2018 | 2019 |
Symbol.prototype.description |
Michael Ficarra | Michael Ficarra | November 2018 | 2019 |
Function.prototype.toString revision |
Michael Ficarra | Michael Ficarra | November 2018 | 2019 |
Object.fromEntries |
Darien Maillet Valentine | Jordan Harband Kevin Gibbons |
January 2019 | 2019 |
Well-formed JSON.stringify |
Richard Gibson | Mathias Bynens | January 2019 | 2019 |
String.prototype.{trimStart,trimEnd} |
Sebastian Markbåge | Sebastian Markbåge Mathias Bynens |
January 2019 | 2019 |
Array.prototype.{flat,flatMap} |
Brian Terlson Michael Ficarra Mathias Bynens |
Brian Terlson Michael Ficarra |
January 2019 | 2019 |
String.prototype.matchAll |
Jordan Harband | Jordan Harband | March 2019 | 2020 |
import() |
Domenic Denicola | Domenic Denicola | June 2019 | 2020 |
BigInt |
Daniel Ehrenberg | Daniel Ehrenberg | June 2019 | 2020 |
Promise.allSettled |
Jason Williams Robert Pamely Mathias Bynens |
Mathias Bynens | July 2019 | 2020 |
globalThis |
Jordan Harband | Jordan Harband | October 2019 | 2020 |
for-in mechanics |
Kevin Gibbons | Kevin Gibbons | December 2019 | 2020 |
Optional Chaining | Gabriel Isenberg Claude Pache Dustin Savery |
Gabriel Isenberg Dustin Savery Justin Ridgewell Daniel Rosenwasser |
December 2019 | 2020 |
Nullish coalescing Operator | Gabriel Isenberg | Gabriel Isenberg Justin Ridgewell Daniel Rosenwasser |
December 2019 | 2020 |
import.meta |
Domenic Denicola | Gus Caplan | March 2020 | 2020 |
String.prototype.replaceAll |
Peter Marshall Jakob Gruber Mathias Bynens |
Mathias Bynens | June 2020 | 2021 |
Promise.any |
Mathias Bynens Kevin Gibbons Sergey Rubanov |
Mathias Bynens | July 2020 | 2021 |
WeakRefs | Dean Tribble Sathya Gunasekaran |
Dean Tribble Mark Miller Till Schneidereit Sathya Gunasekaran Daniel Ehrenberg |
July 2020 | 2021 |
Logical Assignment Operators | Justin Ridgewell | Justin Ridgewell Hemanth HM |
July 2020 | 2021 |
Numeric separators | Sam Goto Rick Waldron |
Sam Goto Rick Waldron Leo Balter |
July 2020 | 2021 |
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 |
April 2021 | 2022 |
RegExp Match Indices | Ron Buckton | Ron Buckton | May 2021 | 2022 |
Top-level await |
Myles Borins Yulia Startsev Daniel Ehrenberg Guy Bedford Ms2ger |
Myles Borins Yulia Startsev |
May 2021 | 2022 |
Ergonomic brand checks for Private Fields | Jordan Harband | Jordan Harband | July 2021 | 2022 |
.at() |
Shu-yu Guo Tab Atkins |
Shu-yu Guo Tab Atkins |
August 2021 | 2022 |
Accessible Object.prototype.hasOwnProperty |
Jamie Kyle | Tierney Cyren Jamie Kyle |
August 2021 | 2022 |
Class Static Block | Ron Buckton | Ron Buckton | August 2021 | 2022 |
Error Cause | Chengzhong Wu | Chengzhong Wu Hemanth HM |
October 2021 | 2022 |
Array find from last | Wenlu Wang | Wenlu Wang Daniel Rosenwasser |
June 2022 | 2023 |
Hashbang Grammar | Bradley Farias | Bradley Farias | July 2022 | 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 |
January 2023 | 2023 |
Change Array by Copy | Ashley Claymore Robin Ricard |
Ashley Claymore Robin Ricard |
March 2022 | 2023 |
Well-Formed Unicode Strings | Guy Bedford Bradley Farias |
Guy Bedford Bradley Farias Michael Ficarra |
May 2023 | 2024 |
Atomics.waitAsync |
Lars Hansen | Shu-yu Guo Lars Hansen |
May 2023 | 2024 |
RegExp v flag with set notation + properties of strings | Markus Scherer Mathias Bynens |
Mathias Bynens | May 2023 | 2024 |
Resizable and growable ArrayBuffers | Shu-yu Guo | Shu-yu Guo | September 2023 | 2024 |
Array Grouping | Justin Ridgewell | Justin Ridgewell Jordan Harband |
November 2023 | 2024 |
Promise.withResolvers |
Peter Klecha | Peter Klecha | - 2023-11 - 2023-07 - 2023-05 - 2023-03 |
2024 |
ArrayBuffer transfer | Shu-yu Guo Jordan Harband Yagiz Nizipli |
Shu-yu Guo Jordan Harband Yagiz Nizipli |
February 2024 | 2024 |
Duplicate named capture groups | Kevin Gibbons | Kevin Gibbons | April 2024 | 2025 |
New Set methods | Michał Wadas Sathya Gunasekaran Kevin Gibbons |
Kevin Gibbons | April 2024 | 2025 |
RegExp Modifiers | Ron Buckton | Ron Buckton | October 2024 | 2025 |
Import Attributes | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
Sven Sauleau Dan Clark Daniel Ehrenberg Nicolò Ribaudo |
October 2024 | 2025 |
JSON Modules | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
October 2024 | 2025 |
Sync Iterator helpers | Gus Caplan | Michael Ficarra Jonathan Keslin Kevin Gibbons |
October 2024 | 2025 |
Promise.try |
Jordan Harband | Jordan Harband | October 2024 | 2025 |
See also the active proposals, stage 1 proposals, stage 0 proposals, and inactive proposals documents.