Dmitry Soshnikov wrote:
Will the "Existential Operator" for properly accessors be something interesting to consider for ES7 spec? Currently CoffeeScript uses it well.

Please see

http://esdiscuss.org/topic/sept-18-tc39-meeting-notes#content-2

and find "ARB: This is non-compositional". Citing text for reader convenience:


 Existential Operator (strawman discussion)

(Presented by Brendan Eich, Mozilla)

Significant desire include a null and undefined check in syntax/operator form (a la coffeescipt)

|     o = {}
    r = o?.p.q.r
    r = o?.p?.q.r
|

Mixed discussion about the needs and use cases as they apply to coffeescript code.

ARB: This is non-compositional

|     o = {}
    r = o?.p.q.r
    r = (o?.p).q.r
    r = o?.p.q.r()
|

Results in…

|     var o, r;
    o = {};
    r = o != null ? o.p.q.r : void 0;
    r = (o != null ? o.p : void 0).q.r;
    r = o != null ? o.p.q.r() : void 0;
|

Non-starter.

DH: Why not an operator that needs to be explicit?

|     o?.p?.q?.r
|

LH: Why would you ever even use it on the first?

BE: Forget all of the problems with coffeescript's impl, the need exists.

YK: In the common cases, where it works, it works well. Where it doesn't, it falls apart unexpectedly.

WH: What about other contexts such as p?[x], p?.q[x], and p?(x) ? [Note that grammar problems arise for some of those.]

General agreement.

*Conclusion/Resolution* Seems useful, but not now. Semantics are unclear

---

The notes ended a bit too optimistically in my view! "Non-starter".

/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to