Existential Operator / Null Propagation Operator

Brendan Eich brendan at mozilla.org
Tue Apr 7 21:39:33 UTC 2015


Caitlin Potter wrote:
>   6, 2015 at 5:42 PM, Brendan Eich<brendan at mozilla.org  <https://mail.mozilla.org/listinfo/es-discuss>>  wrote:
> >
> >>/  Did you keep backward compatibility? `x?.1:y` must continue to work.
> />
> >
> >​This is why I suggested a leading operator (`?a.?b()`) because it seems
> >like it would have the least potential for conflict with existing valid
> >syntax​
>
> What about something like
> MemberExpression[?Yield]   ?|.|  IdentifierName
> MemberExpression[?Yield]   ?*[*  Expression[In, ?Yield]  |]|
> Context specific to MemberExpressions, as far as I'm aware there's no otherwise valid ternary expression that could be mixed up for it, and it wouldn't need a cover grammar?
>

We can try being this precise, as you say -- but we cannot then handle 
x?(y) as CoffeeScript does. Instead of being neither fish nor fowl, 
better to be fowl with leading ?, or use a distinct and regular syntax 
that handles all the cases we want. My two cents,

/be


More information about the es-discuss mailing list