yield syntax
Brendan Eich
brendan at mozilla.com
Tue May 19 14:36:27 PDT 2009
On May 19, 2009, at 2:00 PM, David-Sarah Hopwood wrote:
> *If* it is allowed, then it should be two. It would be very
> surprising if
>
> foo(a = b, c);
>
> had two arguments (as it does), but the above expression with yield
> had one.
>
> But I agree that it may be better not to allow it.
Good; it was a loophole in JS1.7 and up, which I think should be closed.
>> Agreed; this closes the assignment expression loophole.
>
> This would disallow
>
> foo(yield x);
>
> which seems unnecessary.
I thought so too, but Python keeps its grammar simple this way, and
simpler is better, ceteris paribus. JS1.7 allows this but also suffers
the assignment loophole. Getting rid of the latter but not the former
is grammar-hacking busy work. I haven't done it in the WebKit/
JavaScriptCore/parser/Grammar.y.
/be
More information about the es-discuss
mailing list