Stage 1 (Proposal)
What is it? A formal proposal for the feature.
What’s required? A so-called champion must be identified who is responsible for the proposal. Either the champion or a co-champion must be a member of TC39 (source). The problem solved by the proposal must be described in prose. The solution must be described via examples, an API and a discussion of semantics and algorithms. Lastly, potential obstacles for the proposal must be identified, such as interactions with other features and implementation challenges. Implementation-wise, polyfills and demos are needed.
What’s next? By accepting a proposal for stage 1, TC39 declares its willingness to examine, discuss and contribute to the proposal. Going forward, major changes to the proposal are expected.
- Pattern Matching3979
- Observable2785
- Partial application940
- Binary AST879
- Built In Modules (aka JS Standard Library)825
do
expressions781- Slice notation472
- UUID454
- Operator overloading349
- First-class protocols323
- Getting last element of Array303
export v from "mod";
statements265- Asset References249
- Cancellation API248
- Number.range & BigInt.range248
- String.dedent234
- Decimal229
- Escaping Strings for RegExps226
- await operations177
- Block Params165
- Array filtering161
- SES (Secure EcmaScript)150
- JavaScript module fragments147
- Error stacks140
Promise.try
130Math.seededRandoms()
129- Collection methods125
Array.prototype.unique()
112- Emitter88
- Extensions86
"use module"
80- ArrayBuffer to/from Base6477
async do
expressions76- class Access Expressions75
- Fixed shape objects74
- Generator arrow functions71
- Deep Path Properties in Record Literals69
- Extensible numeric literals64
- Declarations in Conditionals62
- Cryptographically Secure Random Number Generation62
{BigInt,Number}.fromString
57Object.freeze
+Object.seal
syntax56- Array Equality56
- Maximally minimal mixins54
- defer module import eval46
Math
Extensions44- Double-Ended Iterator and Destructuring41
String.prototype.codePoints
38- Wavy Dot: Syntactic Support for Promise Pipelining36
of
andfrom
on collection constructors34- Compartments33
- Standardized Debug30
- IDL for ECMAScript29
- Richer Keys27
- Support for Distributed Promise Pipelining27
Array.fromAsync
27String.cooked
25- Private declarations24
- Readonly Collections24
- Evaluator Attributes24
- Module Keys23
- Dynamic Modules23
- Bind-this operator22
- uniform parsing of quasi-standard
Date.parse
input20 - BigInt Math19
- Get Intrinsic16
new.initialize
15- Grouped Accessors and Auto-Accessors14
- Freezing prototypes13
- String is USV String13
- Intl LocaleMatcher12
- Dynamic Code Brand Checks11
- Modulus and Additional Integer Math10
- OOM Fails Fast9
- Reverse iteration8
- Preserve Host Virtualizability8
- Restrict subclassing support in built-in methods8
- Class Brand Checks8
- Smart Unit Preferences in Intl.NumberFormat8
Math.signbit
: IEEE-754 sign bit6- RegExp Extended Mode and Comments6
- eraDisplay option for
Intl.DateTimeFormat
6 - Limited ArrayBuffer5
- Legacy reflection features for functions in JavaScript3
- RegExp
\R
Escape3 - RegExp Buffer Boundaries (
\A
,\z
,\Z
)3 - RegExp Modifiers2
- Float16 on TypedArrays, DataView,
Math.hfround
- Change
Number.parseInt
/parseFloat
to not coercenull
/undefined
/NaN
(repo link TBD) - Async initialization