<aside note>

   let x = q ? 10 : 20;

   Why we're reinventing the wheel here is up to me.

</aside>

-----Message d'origine----- From: Dmitry Soshnikov
Sent: Friday, November 11, 2011 8:54 AM
To: David Herman
Cc: es-discuss Steen
Subject: Re: (Almost) everything is expression

On 11.11.2011 11:43, David Herman wrote:
Brendan and Dave mention explicit semicolon. Yes, it's seems so by the grammar (though, have to check more precisely), but it can be acceptable price.
It's a serious price, though. Today if I write:

     if (q) { ... }
     else { ... }
     (f())

then ASI kicks in after the else body. If we make if-statements into expressions, then either the above becomes a single expression, which is a serious and subtle backwards-incompatible change, or we define lookahead restrictions on ExpressionStatement, and introduce a refactoring hazard:

     x = if (q) { ... }
         else { ... }
(f()) // oops, this is now a parameter list on the RHS of the assignment!

I'm not positive, but that seems like a serious issue to me.

Yes, all this relatively true, but personally I don't see the big issue.
In practice we already have such a case e.g. for FD (function
declaration) vs. FE (function expression).

The former doesn't require semicolon, the later does. Though, in the
later case (FE), today most of programmers put explicit semicolon to
avoid problems with scripts minimizing. From this viewpoint it's not a
big price, since even now the programmers are already used to such cases.

Regarding old code it's also not the issue since there is no such old
code, it's a syntax error. And even if a user will refactor code (to
make it look shorter and elegantly), she should be aware about this case
(again -- just like with FD and FE -- users are aware about it):

Was:

var x;

if (q) {
  x = 10;
} else {
  x = 20;
}

Becomes:

let x = if (q) {
  10;
} else {
  20;
};

Nope, have to think more on this...
You might want to take a look at this:


http://wiki.ecmascript.org/doku.php?id=strawman:block_vs_object_literal


Yep, I've seen it before briefly; will check it more precisely later,
thanks.

Dmitry.

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to