>
> 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
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to