Having this be legal as an expression makes the language more complex from the programmer's perspective than either * prohibiting this, by allowing only expression-statements as expressions here, or * accepting any declaration in this position.
I would be surprised if the status quo were simpler than both of these alternatives from a spec perspective either. Why would this be so? On Thu, Jun 5, 2014 at 9:50 AM, Allen Wirfs-Brock <[email protected]> wrote: > Over and beyond the breaking change WRT function, I really don’t see the > value in such a restriction. There are many pointless or nonsensial things > that can be written as expressions. In general, we don’t complicate the > language to make such things illegal. > > Allen > > > On Jun 5, 2014, at 7:58 AM, Andreas Rossberg <[email protected]> wrote: > > > C-style for-loops allow declarations as init statements, but only some > > of them. Yet, the others (function and class) are actually > > syntactically legal in that position as well, because they are simply > > parsed as expressions. Consider: > > > > let x = 0 > > for (let x = 1; ;) x // 1 > > for (const x = 1; ;) x // 1 > > for (function x(){}; ;) x // 0 > > for (class x(){}; ;) x // 0 > > > > I think these latter two examples violate the principle of least > > surprise. I wonder if it wouldn't be cleaner to rule them out, by > > imposing the same lookahead restrictions on for-loop init expressions > > as there are for expression statements. > > > > The one caveat is that for function, that would actually be a breaking > > change, but is it likely to be a real world one? > > > > What do you think? > > > > /Andreas > > _______________________________________________ > > es-discuss mailing list > > [email protected] > > https://mail.mozilla.org/listinfo/es-discuss > > > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

