It's quite simple (as has already been stated): some people expect `-x ** y` to be `-(x ** y)`. Some expect it to be `(-x) ** y`.
The early SyntaxError ensures that nobody is confused - programmers will immediately add parens to disambiguate. Avoiding a potential footgun for the next 50 years, at the insignificant cost of adding two characters so that it parses seems like a very cheap price to pay. On Tue, Oct 18, 2016 at 12:20 AM, medikoo <medikoo+mozilla....@medikoo.com> wrote: > I must say throwing here, instead of relying on math dictated operators > precedence looks really bad. > It's very surprising to those well experienced with the language, and > totally inconsistent with how operators worked so far (there is no previous > case where one will throw for similar reason). > > Also argument that it's inconsistent with Math.pow(-2, 2), is total miss in > my eyes. > I believe to most programmers `Math.pow(-2, 2)`, translates to `(-2)**(2)` > and not to `-2**2`, > same as `Math.pow(a ? b : c, 2)` intuitively translates to `(a ? b : > c)**(2)` and not to `a ? b : c**2` > > > > > -- > View this message in context: http://mozilla.6506.n7.nabble. > com/Power-operator-why-does-2-3-throws-tp359609p359731.html > Sent from the Mozilla - ECMAScript 4 discussion mailing list archive at > Nabble.com. > _______________________________________________ > 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