On May 17, 2009, at 11:00 AM, Brendan Eich wrote:

Python differs from JS by having only assignment statements, not assignment expressions, which simplifies the problem a bit, as the grep output cited above shows.

Of course this makes trouble with automatic semicolon insertion, unless assignment statements are split from assignment expressions. D'oh!

js> function g() {z = yield a ? f : x++()}
typein:2: SyntaxError: missing ; before statement:
typein:2: function g() {z = yield a ? f : x++()}
typein:2: .................................^
js> function g() {(z = yield a ? f : x++)()}


To confirm this, I patched WebKit's Bison grammar for JS to support yield //a la// JS1.7. I didn't hook up the semantic actions, just verified zero reduce-reduce conflicts. Patch attached below -- comments welcome (including from you WebKit lurkers :-).

Patching this is harder than I thought it would be. After hacking at the Bison grammar a bit, I concede your point about implementation difficulty!

Usability still favors the Python approach, at least for yield statements.

/be



_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to