Yes, that was my point, that is has to be allowed currently and this is a change. Using what incorrectly? Existing "const" and "function" implementations? Or if "scoped" declarations?
On Thu, Jan 30, 2014 at 11:35 AM, Oliver Hunt <oli...@apple.com> wrote: > > On Jan 30, 2014, at 11:27 AM, John Lenz <concavel...@gmail.com> wrote: > > I don't argue that it isn't a useless "let". I do point out that in > "sloppy" mode, that other declaration are allow in practices by browsers. > Chrome allows function, const, and var in the body of an if without block. > > > That's because they _have_ to be allowed as these constructs are used on > millions (billions?) of web pages. Disallowing that behaviour would break > the web and we can't do that. > > Introducing new constructs that expose the same coding problems is not > worth it - maybe we would want to change something in the future but we > would already have been burned by existing content using this code > incorrectly. > > --Oliver > > > It does seems like an unnecessary restriction, and with it I'll need to > make sure that Closure Compiler doesn't introduce these when stripping > blocks, not a big deal just one more thing to deal with. > > I was just hoping that the restriction was enabling something and not just > noise. > > > On Thu, Jan 30, 2014 at 11:00 AM, Brendan Eich <bren...@mozilla.com>wrote: > >> John Barton wrote: >> >>> Not silly. Can you suggest any on-line that most JS developers can >>> understand discussing how these two forms differ? >>> >>> Here are some that describe them as equivalent: >>> >>> http://en.wikipedia.org/wiki/JavaScript_syntax#If_..._else >>> http://msdn.microsoft.com/en-us/library/kw1tezhk(v=vs.94).aspx < >>> http://msdn.microsoft.com/en-us/library/kw1tezhk%28v=vs.94%29.aspx> >>> >>> http://programmers.stackexchange.com/questions/ >>> 16528/single-statement-if-block-braces-or-no >>> http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/ >>> index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Flanguage%2Fref%2Fclrc08csor.htm >>> http://msdn.microsoft.com/en-us/library/ms173143.aspx >>> >>> and so on across multiple languages. Whether or not you think these >>> forms should be different, programmers don't expect them to differ. >>> >> >> This is all beside the point, since the unbraced let as consequent of if >> cannot make a useful binding (if you use comma-separated multiple >> declarators, you still can't use any of the values that initialize the >> bindings except in later useless-outside-the-single-declaration >> consequent). >> >> /be >> > > _______________________________________________ > 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