<html><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
</head><body bgcolor="#FFFFFF" text="#000000"><br>
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="margin:30px 25px 10px 25px;" class="__pbConvHr"><div 
style="display:table;width:100%;border-top:1px solid 
#EDEEF0;padding-top:5px"><div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;width:100%">
        <a moz-do-not-send="true" href="mailto:fremycompany_pub@yahoo.fr" 
style="color:#737F92 
!important;padding-right:6px;font-weight:bold;text-decoration:none 
!important;">François REMY</a></div>   <div 
style="display:table-cell;white-space:nowrap;vertical-align:middle;">   
  <font color="#9FA2A5"><span style="padding-left:6px">January 12, 2012 
2:23 PM</span></font></div></div></div>
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">Am I wrong
 if I say there not a bigger issue with block lambda than with the 
current object notation on the matter?
    <br>
  </div>
</blockquote>
<br>
Please continue :-).<br>
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
<br>I mean, does that code mean anything useful?
<br>
<br>   function() {
<br>       {|a,b| a+b};
<br>   }
<br></div>
</blockquote>
<br>
(You need a name for that function if it is a declaration, and from the 
context you show, it is.)<br>
<br>
Does this perfectly valid JS mean anything useful?<br>
<br>
  function f() {<br>
    (function (a, b) { return a + b; });<br>
  }<br>
<br>
Nevertheless, it is legal. JS follows C (not Java) in allowing seemingly
 useless expression-statements. This can be a source of bugs. It is also
 required in some cases, namely when the function expression (in 
parentheses) is the completion value of a Program. In such a case that 
value could be the wanted result of eval or an eval-like host API.<br>
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">
<br>If not (as it seems to me), it means that a block lambda will not be
 used as 
a statement by itself. If it's the case, it should defined as an 
Expression 
only,</div>
</blockquote>
<br>
Expression is already a kind of statement, via ExpressionStatement. 
Furthermore, an ExpressionStatement *already* cannot start with a left 
curly brace. Please read the grammar:<br>
<br>
<span style="font-weight: bold;">12.4 Expression Statement</span><br>
<br>
<span style="font-weight: bold;">Syntax</span><br>
<br>
<span style="font-style: italic;">ExpressionStatement</span> :<br>
    [lookahead ∉ {<span style="font-weight: bold;">{</span>, <span 
style="font-weight: bold;">function</span>}] <span style="font-style: 
italic;">Expression</span> <span style="font-weight: bold;">;</span><br>
<br>
NOTE An ExpressionStatement cannot start with an opening curly brace 
because that might make it ambiguous with a Block. Also, an 
ExpressionStatement cannot start with the function keyword because that 
might make it ambiguous with a FunctionDeclaration.<br>
<br>
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody"> where 
there's no anonymous block to conflict the syntax.</div>
</blockquote>
<br>
This is the conflict you're looking for.<br>
<br>
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="color: rgb(136, 136, 136); margin-left: 24px; 
margin-right: 24px;" __pbrmquotes="true" class="__pbConvBody">That 
solution 
has been chosen for object notation in the past. That way,
    <br>

<br>   function() {
<br>       {
<br>           (a, b)
<br>           a.add(b)
<br>       }
<br>   }
<br></div>
</blockquote>
<br>
That is already valid ES1-6.<br>
<br>
Others have already replied, but the problem with redefining ( after { 
without untenable newline sensitivity is it is a backward-incompatible 
change.<br>
<br>
/be
<blockquote style="border: 0px none;" 
cite="mid:8A50647085194FB7B2F65F620A89E445@FREMYD2" type="cite">
  <div style="color:#888888;margin-left:24px;margin-right:24px;" 
__pbrmquotes="true" class="__pbConvBody"><div><br></div></div>
</blockquote>
</body></html>