Thanks for the links. So, is my takeaway correct that we can't just use it everywhere and have to worry about whitespace and certain expressions?
Would it just be better to rename Number to "a" or something like that? -Alex On 1/2/17, 1:13 PM, "Harbs" <[email protected]> wrote: >FWIW, ActionScript seems to have a unary plus as well. >http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4f >bf351e63e3d118a9b90204-7fd1.html#WS5b3ccc516d4fbf351e63e3d118a9b90204-7f69 > >On Jan 2, 2017, at 11:09 PM, Harbs <[email protected]> wrote: > >> >> On Jan 2, 2017, at 7:34 PM, Alex Harui <[email protected]> wrote: >> >>> Where can I read more about this syntax? >> >> >>https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/ >>Arithmetic_Operators#Unary_plus_() >> >>> Does the difference really move the needle? Does GCC optimizer replace >>> Number with a shortened name anyway? >> >> IFAIK, GCC leaves Number() as is. I just searched a current minimized >>project and there were 137 Number() casts. That would be a savings of >>959 bytes. The entire minimized file is 402 KB. We’d possibly have an >>extra space before the unary plus, but even so, it would be a savings of >>822 bytes. >> >>> What if you take away all whitespace? >> >> I think it depends on where. 20 + +”1234” works, while 20++”1234” fails >>miserably with the following error: Uncaught ReferenceError: Invalid >>left-hand side expression in postfix operation >> var foo=+”1234”; works fine. >> >>> What should we generate for: >>> >>> var bar = "1234"; >>> var foo = Number(bar); >>> >> >> var bar = "1234"; >> var foo = +bar; >> >>> var foo = Number("12" + "34”); >> >> Good question. >> +("12" + "34") probably makes the most sense for this case. >> >> >>> Sorry for all of the questions. I'm trying to understand how much >>>gain we >>> get for how much work. >>> >>> Thanks, >>> -Alex >>> >>> On 1/2/17, 9:23 AM, "Harbs" <[email protected]> wrote: >>> >>>> Or more concisely: >>>> >>>> console.log(20 + +"1234") >>>> < 1254 >>>> >>>> On Jan 2, 2017, at 7:21 PM, Harbs <[email protected]> wrote: >>>> >>>>> Apparently, yes: >>>>> >>>>>> var foo = 20 + +"1234"; >>>>> < undefined >>>>>> foo >>>>> < 1254 >>>>> >>>>> On Jan 2, 2017, at 7:13 PM, Alex Harui <[email protected]> wrote: >>>>> >>>>>> var foo = 20 + +"1234"; >>>>> >>>> >>> >> >
