ASI and wrapping long lines
Irakli Gozalishvili
rfobic at gmail.com
Wed Jul 28 01:47:45 PDT 2010
Another pattern of solving this that people writing semicolonless code
already employ is:
function a() {
return (
"some string"
)
}
Regards
--
Irakli Gozalishvili
Web: http://www.jeditoolkit.com/
Phone: +31 614 205275
Address: 29 Rue Saint-Georges, 75009 Paris, France <http://goo.gl/maps/3CHu>
On Tue, Jul 27, 2010 at 00:29, Allen Wirfs-Brock <
Allen.Wirfs-Brock at microsoft.com> wrote:
> I confess that I haven’t waded through the entire Rationalizing ASI
> thread. I generally agree with Brendan concerning the horse and the barn.
>
>
>
> However, there was one ASI problem that was raised for which I think we
> could at least provide a basic remediation:
>
>
>
> >We talked at the July 2008 Oslo ("Harmony") meeting about one way to
> mitigate the unreported dead-code error that results from
>
> >function foo() {
>
> > if (some) {
>
> > if (deep) {
>
> > if (random) {
>
> > if (logic) {
>
> > if (ending) {
>
> > if (in_a_very_long) {
>
> > return
>
> > "I believe in the 80 column limit, so I
> wrapped";
>
> > }
>
> > }
>
> > }
>
> > }
>
> > }
>
> > }
>
> > return "LOL";
>
> >}
>
>
>
> The problem here is that the programmer has a legitimate reason to want to
> break a return across two lines and they can’t. There is an easy fix for
> this. It’s called “line continuation”.
>
>
>
> In ES5 we standardized the de facto browser behavior for line continuation
> within string literals: LineContinuation :: \ LineTerminator Sequence.
>
>
>
> A LineContinuation certainly could also be allowed as an alternative for
> whitespace. Then if [no LineTerminator here] is reinterpreted to not match
> a LineContinuation then the above return could have been written as:
>
>
>
> return \
>
> "I believe in the 80 column limit, so I used
> a LineContinuation";
>
>
>
> It wouldn’t help people who didn’t know about line continuation but it
> would allow those who do know about them the flexibility to format their
> code the way they want it. I would normally say a language shouldn’t need
> cruft like this. However, once you’ve go down the road of making line
> breaks syntactically significant it is arguably reasonable to also allow
> for line breaks that explicitly have no syntactic significance.
>
>
>
> Allen
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20100728/e6e8cd27/attachment.html>
More information about the es-discuss
mailing list