>
> That's not true. It's still more work to spec ?. as well as refutable
> destructuring for ES6. It requires an internal Nil (or Reference variation
> as Allen suggested to me). It requires grammar hassling to allow suffix-?
> in expressions.
I see that. Bear with me nonetheless.
It seems that on both the pattern side and the expression side, we're
trying to express the same thing: an "irrefutable property get", where we
get a nillish reference if the property does not exist. Moreover, I assert
that this is exactly what we want on the expression side, nothing more or
less(*).
We know that we're going to want to expose this "irrefutable property get"
on both the pattern side and the expression side at *some* point. We also
know that we want to use the "?" sigil to indicate this operation.
The syntax question is whether we use suffix-? (where the "?" appears after
the property name) or prefix-? (where the "?" appears before the property
name).
(Prefix-? on the expression side means that ".?" is a single lexeme.)
Using suffix-? on the expression side is not backward compatible for the
ASI reasons already mentioned:
a.b?
c:
d;
So we're down to two possibilities:
1) Expression: prefix-?, Pattern: suffix-?
2) Expression: prefix-? Pattern: prefix-?
Consistency would seem to dictate (1).
{ p: { ?q: v } } = o;
v = o.p.?q;
But in any case, the "irrefutable property get" operation has to be
specified, so given my assertion above (*) it boils down to just deciding
this prefix or suffix question.
{ Kevin }
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss