Brendan Eich wrote:
Yes, I already agreed (three times :-|) that nil rescues ?. from the
condemnation ARB heaped on the CoffeeScript semantics.
That's not relevant to what we were just arguing about though: whether
nil rather than undefined should be an observable result of either
destructuring or (you seemed to say just above) property gets on plain
old objects!
Apologies, I did not make the full idea clear:
You want nil in the language and observable via desugaring
o.?p.q ==> (o.p == null ? nil : o.p).q
without re-evaluating o.p of course (and using the syntax you showed).
Furthermore, in the case where o.p == null, the result is nil.q which is
nil.
(Please correct me if I am wrong on any of this! Appreciate the
discussion here.)
What I would like to do: spec ?. without exposing nil. Perhaps this is
not possible but I think it is, since we can make the definite semantics
for o.?p.q or whatever syntax we want (I advocate o.p?.q) do a final
censoring act that converts nil back to undefined.
You could be right that we want nil and ?. together -- no way to
decouple risk. I'm not seeing that argument yet. People want ?.
yesterday, nil not so much (see twitter).
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss