2011/11/11 David Herman <[email protected]>:
> 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
[email protected]
https://mail.mozilla.org/listinfo/es-discuss