Optional Chaining: Stage 1
hzoo opened this issue · comments
TC39 Proposals: https://github.com/tc39/proposals
Stage: 1, Gabriel Isenberg, Claude Pache
Proposed at TC39 Meeting: https://github.com/tc39/agendas/blob/master/2017/01.md#agenda-items
Spec Repo: https://github.com/tc39/proposal-optional-chaining
Slides: https://docs.google.com/presentation/d/11O_wIBBbZgE1bMVRJI8kGnmC6dWCBOwutbN9SWOK0fU/edit#slide=id.p
ESTree Issue to discuss AST Spec: estree/estree#146
cc @gisenberg if you can implement or work with someone to do so. (Please join our slack if you haven't http://slack.babeljs.io/)
Babylon PR: #545
Babel PR: babel/babel#5786
Thanks for looping me in! I wanted to let everyone know that I'm over in the BabelJS Slack if there are others that would like to discuss this feature further. I'm currently working with @bmeck on the Babel side of things.
I'm currently werking on An PR for this
Any news? @kristofdegrave
As discussed in the babel slack, I'm also interested in contributing to this once the spec is a bit more settled.
I previously implemented a ?.
feature for LightScript (a fork/superset of JS built on babylon/babel). In case it helps anyone, here is:
- The babel transform
- The associated tests
- The commit adding the feature to the lightscript parser (a fork of babylon). It uses poor naming ("elvis operator" isn't accurate) and isn't backwards-compatible; a different approach would be necessary.
My version doesn't currently support assignments or delete, though I may add those soon.
For now I'll wait for a bit to hear back from @kristofdegrave and the babel team as to whether the spec seems stable.
Can't wait to see this on ES. Inspite of it being yet at stage-1
, it is the only thing that I've always wanted to be part of EcmaScript since I stopped using CoffeeScript. I wish I had spare time to implement it.
@gisenberg @kristofdegrave is this still something you are working on? Do you need help?
Based on @kristofdegrave's work, I can make a PR with this master...xtuc:feat-optional-chaining
I have the Babel part as well babel/babel@7.0...xtuc:feat-optionnal-chaining
I currently only support the basic syntax:
a?.b = 42
delete a?.b
foo?.bar()
@thomaschaaf This is still underway. If you're interested in helping, https://github.com/gisenberg/proposal-optional-chaining is tracking the remaining work. I'm also in the BabelJS Slack if you want to reach out directly.
@xtuc, @kristofdegrave Let's start the PR so we can make a review by us + Gabe?
The babylon PR is merged (#545)
Please help review/test the transform PR babel/babel#5813