2011/11/11 David Herman <dher...@mozilla.com>: > On Nov 11, 2011, at 3:48 AM, François REMY wrote: > >> I think you strongly underestimate the "distinction" problem. ... It's >> completelty unclear to me. If there's no way to tell what the "return >> statement" of the block is, there's no way to implement your proposal. > > It's actually quite easy to implement Dmitry's proposal, because it's already > specified by the ECMAScript semantics! All statements can produce completion > values. You can test this yourself: take any statement, quote it as a string, > and put it in eval, and you'll get a value (if it doesn't loop infinitely, > exit the program, or throw an exception, of course).
If statements as expressions goes forward, we should look into tweaking completion values. IMHO, a code maintainer who sees resource = ..., foo(resource) would expect to be able to wrap the use of resource in a try finally thus resource = ..., (try { foo(resource) } finally { release(resource) }) without changing the completion value of the expression. _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss