TC39 proposals are proposals for new features or significant changes to Javascript. Stage 4 proposals are finalised and have either been published as part of the Javascript specification or are due for imminent publication as such. Stage 3 proposals are proposals that are ready for implementation with minor refinements to be made based on feedback from the implementation process but are otherwise considered complete.
Stage | CC Status | CC Ref | Proposal | Author | Champion(s) | Expected Publication Year |
---|---|---|---|---|---|---|
4 | In 1.11 | n/a | Array.prototype.includes |
Domenic Denicola | Domenic Denicola Rick Waldron |
2016 |
4 | In 1.11 | n/a | Exponentiation operator | Rick Waldron | Rick Waldron | 2016 |
4 | In 1.11 | PR | Object.values /Object.entries |
Jordan Harband | Jordan Harband | 2017 |
4 | In 1.11 | PR | String padding | Jordan Harband | Jordan Harband Rick Waldron |
2017 |
4 | In 1.11 | PR | Object.getOwnPropertyDescriptors |
Jordan Harband Andrea Giammarchi |
Jordan Harband Andrea Giammarchi |
2017 |
4 | In 1.11 | n/a | Trailing commas in function parameter lists and calls | Jeff Morrison | Jeff Morrison | 2017 |
4 | In 1.11 | n/a | Async functions | Brian Terlson | Brian Terlson | 2017 |
4 | Disabled behind flag | Implementation Flag | Shared memory and atomics | Lars T Hansen | Lars T Hansen | 2017 |
4 | Not Started | Issue | Lifting template literal restriction | Tim Disney | Tim Disney | 2018 |
4 | In master | PR | s (dotAll ) flag for regular expressions |
Mathias Bynens | Brian Terlson Mathias Bynens |
2018 |
4 | Not Started | Issue | RegExp named capture groups | Gorkem Yakin Daniel Ehrenberg |
Daniel Ehrenberg Brian Terlson Mathias Bynens |
2018 |
4 | In master | PR | Rest/Spread Properties | Sebastian Markbåge | Sebastian Markbåge | 2018 |
4 | Not Started | Issue | RegExp Lookbehind Assertions | Gorkem Yakin Nozomu Katō Daniel Ehrenberg |
Daniel Ehrenberg Mathias Bynens |
2018 |
4 | Not Started | Issue | RegExp Unicode Property Escapes | Mathias Bynens | Brian Terlson Daniel Ehrenberg Mathias Bynens |
2018 |
4 | In 1.11 | PR | Promise.prototype.finally |
Jordan Harband | Jordan Harband | 2018 |
4 | In master | PR | Asynchronous Iteration | Domenic Denicola | Domenic Denicola | 2018 |
4 | In master | PR | Optional catch binding |
Michael Ficarra | Michael Ficarra | 2019 |
4 | In master | PR | JSON superset | Richard Gibson | Mark Miller Mathias Bynens |
2019 |
4 | In master | PR | Symbol.prototype.description |
Michael Ficarra | Michael Ficarra | 2019 |
4 | In master | PR | Function.prototype.toString revision |
Michael Ficarra | Michael Ficarra | 2019 |
4 | In master | PR | Object.fromEntries |
Darien Maillet Valentine | Jordan Harband Kevin Gibbons |
2019 |
4 | In master | PR | Well-formed JSON.stringify |
Richard Gibson | Mathias Bynens | 2019 |
4 | In master | PR | String.prototype.{trimStart,trimEnd} |
Sebastian Markbåge | Sebastian Markbåge Mathias Bynens |
2019 |
4 | In master | PR | Array.prototype.{flat,flatMap} |
Brian Terlson Michael Ficarra Mathias Bynens |
Brian Terlson Michael Ficarra |
2019 |
4 | Not Started | Issue | String.prototype.matchAll |
Jordan Harband | Jordan Harband | 2020 |
4 | Flagged in 1.11 enabled in Master | PR | import() |
Domenic Denicola | Domenic Denicola | 2020 |
4 | WIP | Issue | BigInt |
Daniel Ehrenberg | Daniel Ehrenberg | 2020 |
4 | In master | PR | Promise.allSettled |
Jason Williams Robert Pamely Mathias Bynens |
Mathias Bynens | 2020 |
4 | In master | PR | globalThis |
Jordan Harband | Jordan Harband | 2020 |
4 | Not Started | for-in mechanics |
Kevin Gibbons | Kevin Gibbons | 2020 | |
4 | WIP | Issue | Optional Chaining | Gabriel Isenberg Claude Pache Dustin Savery |
Gabriel Isenberg Dustin Savery Justin Ridgewell Daniel Rosenwasser |
2020 |
4 | In Master | PR | Nullish coalescing Operator | Gabriel Isenberg | Gabriel Isenberg Justin Ridgewell Daniel Rosenwasser |
2020 |
4 | In master | PR | import.meta |
Domenic Denicola | Gus Caplan | 2020 |
4 | Not Started | Issue | String.prototype.replaceAll |
Peter Marshall Jakob Gruber Mathias Bynens |
Mathias Bynens | 2021 |
4 | WIP | PR | Promise.any |
Mathias Bynens Kevin Gibbons Sergey Rubanov |
Mathias Bynens | 2021 |
4 | Not Started | WeakRefs | Dean Tribble Sathya Gunasekaran |
Dean Tribble Mark Miller Till Schneidereit Sathya Gunasekaran Daniel Ehrenberg |
2021 | |
4 | Not Started | Logical Assignment Operators | Justin Ridgewell | Justin Ridgewell Hemanth HM |
2021 | |
4 | In master | PR | Numeric separators | Sam Goto Rick Waldron |
Sam Goto Rick Waldron |
2021 |
3 | Not Started | Legacy RegExp features in JavaScript | Claude Pache | Mark Miller Claude Pache |
||
3 | Not Started | Private instance methods and accessors | Daniel Ehrenberg | Daniel Ehrenberg Kevin Gibbons |
||
3 | Not Started | Issue | Class Public Instance Fields & Private Instance Fields | Daniel Ehrenberg Kevin Gibbons |
Daniel Ehrenberg Jeff Morrison Kevin Smith Kevin Gibbons |
|
3 | Not Started | Static class fields and private static methods | Daniel Ehrenberg Kevin Gibbons Jeff Morrison Kevin Smith |
Shu-Yu Guo Daniel Ehrenberg |
||
3 | In master | PR | Hashbang Grammar | Bradley Farias | Bradley Farias | |
3 | In master | PR | Top-level await |
Myles Borins | Myles Borins | |
3 | Not Started | RegExp Match Indices | Ron Buckton | Ron Buckton | ||
3 | Not Started | Atomics.waitAsync |
Lars Hansen | Shu-yu Guo Lars Hansen |
||
3 | In Master | PR | .at() |
Shu-yu Guo Tab Atkins |
Shu-yu Guo Tab Atkins |
|
3 | Not Started | Import Assertions | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
||
3 | Not Started | JSON Modules | Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
Myles Borins Sven Sauleau Dan Clark Daniel Ehrenberg |
||
3 | Not Started | Ergonomic brand checks for Private Fields | Jordan Harband | Jordan Harband | ||
3 | In master | PR | Error Cause | Chengzhong Wu | Chengzhong Wu Hemanth HM |
|
3 | Not Started | Temporal | Maggie Pint Matt Johnson Philipp Dunkel |
Maggie Pint Philipp Dunkel Brian Terlson |