This site is a work in progress, proposal data is incomplete and may contain errors

TC39 Proposals

Last updated June 22, 2026
11 Stage 1 27 Stage 2 7 Stage 2.7 11 Stage 3 81 Stage 4 2 Withdrawn 139 Total 6 Missing tests
Stage
No tests
Tests unmerged
Tests merged
Not testable
Stage Stage 1 Stage 2 Stage 2.7 Stage 3 Stage 4 Tests Duration
Async functions
Object.getOwnPropertyDescriptors
Array.prototype.includes
Exponentiation Operator
Trailing Commas in Functions
Rest/Spread Properties
function.sent
Stage 2
n/a
n/a
n/a
n/a
n/a
11 years, 2 months
Function.prototype.toString revision
RegExp.escape
String.prototype.trimStart/trimEnd
Shared Memory and Atomics
Object.values / Object.entries
String.prototype.matchAll
String.prototype.padStart / padEnd
globalThis
Async Iteration
Private Fields
Stage 4
n/a
n/a
n/a
no PR
8 months
WeakRefs
Template Literals Revision
Decorators
RegExp Unicode Property Escapes
Class Fields
Promise.prototype.finally
RegExp named capture groups
Legacy RegExp features in JavaScript
import()
RegExp dotAll flag
Promise.try
BigInt
RegExp Lookbehind Assertions
Optional Chaining
ShadowRealm
Temporal
Float16Array
Atomics.waitAsync
Numeric separators
import.meta
Symbol.prototype.description
Array.prototype.{flat,flatMap}
Optional catch binding
Private methods
Throw Expressions
Stage 2
n/a
n/a
n/a
n/a
8 years, 10 months
Pipeline Operator
Stage 2
n/a
n/a
n/a
n/a
8 years, 8 months
JSON superset
Nullish Coalescing
String.prototype.replaceAll
Static Class Features
Function implementation hiding
Stage 2
n/a
n/a
n/a
n/a
8 years, 4 months
Set methods
Seeded Pseudo-Random Numbers
Stage 2
n/a
n/a
n/a
n/a
8 years, 4 months
Top-level await
Object.fromEntries
Logical Assignment
Hashbang Grammar
Collection Normalization
Stage 2
n/a
n/a
n/a
n/a
8 years, 3 months
Well-formed JSON.stringify
Class Static Block
RegExp Match Indices
Explicit Resource Management
For-in order
Promise.allSettled
JSON.parse source text access
Iterator Helpers
Promise.any
Dynamic Code Brand Checks
Upsert
Records & Tuples
Withdrawn
n/a
n/a
n/a
n/a
5 years, 6 months
Declarations in Conditionals
Stage 1
n/a
n/a
n/a
n/a
n/a
6 years, 8 months
Import Attributes
Ergonomic brand checks for Private Fields
Iterator.range
Stage 2
n/a
n/a
n/a
n/a
6 years, 2 months
Symbols as WeakMap keys
Async Context
Relative Indexing Method
JSON Modules
FinalizationRegistry.prototype.cleanupSome
Withdrawn
n/a
n/a
n/a
n/a
n/a
3 years, 2 months
Resizable ArrayBuffers
String.dedent
Stage 2
n/a
n/a
n/a
n/a
5 years, 8 months
Error Cause
Module Expressions
Stage 2
n/a
n/a
n/a
n/a
5 years, 7 months
RegExp v flag
Deferring Module Evaluation
Array find from last
Module Declarations
Stage 2
n/a
n/a
n/a
n/a
5 years, 3 months
Accessible Object.prototype.hasOwnProperty
Change Array by Copy
Array Grouping
Uint8Array to/from Base64
Well-Formed Unicode Strings
Array.fromAsync
Structs
Stage 2
n/a
n/a
n/a
n/a
4 years, 9 months
Destructure Private Fields
Stage 2
n/a
n/a
n/a
n/a
4 years, 7 months
RegExp Modifiers
RegExp Buffer Boundaries
Source Phase Imports
Decorator Metadata
Duplicate Named Capture Groups
JSON.parseImmutable
Stage 2
n/a
n/a
n/a
n/a
n/a
3 years, 11 months
Symbol Predicates
Stage 2
n/a
n/a
n/a
n/a
3 years, 11 months
Extractors
Stage 2
n/a
n/a
n/a
n/a
3 years, 9 months
ArrayBuffer transfer
Async Iterator Helpers
Stage 2
n/a
n/a
n/a
n/a
n/a
3 years, 4 months
Await Dictionary
Promise.withResolvers
Joint Iteration
Iterator Sequencing
Math.sumPrecise
Redeclarable global eval-introduced vars
Atomics.pause
Iterator Chunking
Discard Bindings
Stage 2
n/a
n/a
n/a
n/a
2 years, 4 months
ESM Phase Imports
Error.isError
Propagate active ScriptOrModule with JobCallback Record
Stage 2
n/a
n/a
n/a
n/a
n/a
1 year, 10 months
Immutable ArrayBuffers
Import Sync
Stage 2
n/a
n/a
n/a
n/a
1 year, 6 months
Thenable Curtailment
Stage 2
n/a
n/a
n/a
n/a
1 year, 4 months
Math.clamp
Stage 2
n/a
n/a
n/a
n/a
1 year, 4 months
Error Stack Accessor
Error.captureStackTrace
Stage 2
n/a
n/a
n/a
n/a
1 year, 4 months
Composites
Stage 1
n/a
n/a
n/a
n/a
n/a
1 year, 2 months
Non-extensible Applies to Private
Deferred re-exports
Stage 2
n/a
n/a
n/a
n/a
n/a
1 year, 2 months
Import Bytes
Stage 2.7
n/a
n/a
n/a
10 months
Amount
Stage 2
n/a
n/a
n/a
n/a
9 months
Promise.isPromise
Stage 2
n/a
n/a
n/a
n/a
9 months
Import Text
TypedArray Concatenation
Stage 1
n/a
n/a
n/a
n/a
n/a
7 months
TypedArray Find Within
Stage 1
n/a
n/a
n/a
n/a
n/a
7 months
Iterator Join
Object.keysLength
Stage 2
n/a
n/a
n/a
n/a
n/a
7 months
Object.getNonIndexStringProperties()
Stage 1
n/a
n/a
n/a
n/a
n/a
7 months
Error option limit
Stage 1
n/a
n/a
n/a
n/a
n/a
5 months
Error option framesAbove
Stage 1
n/a
n/a
n/a
n/a
n/a
5 months
Alias Accessors
Stage 1
n/a
n/a
n/a
n/a
n/a
5 months
Composable Accessors via built-in decorators
Stage 1
n/a
n/a
n/a
n/a
n/a
5 months
Iterator Includes
Export all from
Stage 1
n/a
n/a
n/a
n/a
n/a
1 month
Comparisons
Stage 1
n/a
n/a
n/a
n/a
n/a
1 month
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026