-
Notifications
You must be signed in to change notification settings - Fork 588
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[JavaScript] ECMAScript Omnibus #1269
Comments
10 tasks
This was referenced Nov 8, 2017
5 tasks
Optional Chaining is Stage-3! See the ECMA262 changes. |
Everything here is implemented except for |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I'm creating this issue to catalog missing features in the JavaScript bundle and discuss their implementation. Once #1009 is merged it should be easy to rip through most of these in short order.
Some of these features are still moving through the standardization process and may change or even be cancelled. Implementing them exposes us to the risk of a breaking change. But countless developers already use experimental features via transpilers like Babel, and failing to support them would mean leaving them out in the cold.
In my opinion, we should add an experimental feature when it:
These criteria are necessarily fuzzy. A stage-3 proposal is a much safer bet than a stage-0 proposal. "Available for practical use" will usually mean "implemented in Babel". Stability might best be determined by taking the sense of the TC39 meeting notes.
If we do implement an experimental feature, and that feature is cancelled or substantially altered, then we must take responsibility for updating or removing our implementation of that feature. An "expired" experimental feature is nothing but cruft.
The following features are not implemented as of May 8, 2018. Examples are largely taken from Babel or from the proposal spec.
function.sent
Status: Stage 2
Importance: Moderate (Babel implementation)
Risk: Low.
Optional Chaining
Status: Stage 1
Importance: Moderate (Babel implementation)
Risk: High.
Features already implemented
Class Fields (implemented in #1292)
Numeric Separators and BigInt (implemented in #1294)
Asynchronous Iteration (implemented in #1341)
RegExp Improvements (implemented in #1416)
Function parameter destructuring (implemented in #1423)
new.target
(implemented in #1424)import.meta
(implemented in #1484)Decorators (implemented in #1483)
For completeness's sake, it's worth pointing out some common language extensions that are not on the TC39 standards track: JSX, TypeScript, and Flow. The current feeling is that we should not add these extensions into the core language syntax, although a separate JSX syntax might be added at some point (#860).
The text was updated successfully, but these errors were encountered: