> There's no perfect answer. Shorter return syntax ("^" with an ASI change, or 
> my "empty label" idea, "function f(){:g()}") is ugly, adds overhead, and can 
> still be left off by mistake (making for the opposite problem from the 
> capability leak one: returning undefined instead of the intended result of an 
> expression evaluation).

For example:

    array.map(function(x) { x * 2 }) // oops!

Also, any explicit return syntax has a "Tennent" problem just like return does. 
Moreover, it forces programmers to write imperatively (return is a non-local 
jump), when so much of JS code makes effective use of expression-based 
programming -- for example, the popular "method chaining" style, which is 
essentially functional programming with methods.

> I still think the completion value leak problem is manageable with docs, 
> tools, and resort to good old "function" long-hand syntax. Opinions?

I agree. But I am sympathetic to Doug's concern about further overloading the 
curly-brace syntax.

Dave

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

Reply via email to