The ambiguity between a block body and an object literal expression body,
which we would prefer to resolve in favor of object literal. The solutions
considered before this edit were:
* http://wiki.ecmascript.org/doku.php?id=strawman:block_vs_object_literal
* Two-token lookahead restriction per
http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax&rev=1307297899#grammar_changes
Both are hairy and not near consensus in TC39. The first isn't backward-
compatible on edge cases that probably exist on the web. The second is
future-hostile.
An alternative suggestion was to default to object, but to use an empty
statement prefix to get an unambiguous block {; ..}. Then, we'd have
- statement context: default to block, use parens ({..}) to get object
- expression context: default to object, use empty statement {;..} to get
block
{; ..} might be a notation-alternative to do-expressions, saving a valuable
keyword. This would require compatible completion-value semantics.
Claus
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss