Actually I just checked and it looks like there is a bug in the compiler
for this



Greg Dove
Dove Software Development Ltd
http://greg-dove.com

On Wed, Mar 15, 2017 at 5:54 PM, Greg Dove <greg.d...@gmail.com> wrote:

> Alex, I agree, it seems whatever prompted this was elsewhere, but the
> outcome is IMO (a small amount of) better framework code in CSSUtils.
> I would take this as a small win - nothing is broken, and a utility method
> is theoretically slightly faster.
>
>
> On Wed, Mar 15, 2017 at 5:19 PM, Alex Harui <aha...@adobe.com> wrote:
>
>> Thanks for running the test.  Maybe I'm not understanding the issue, but
>> here's my summary.
>>
>> Justin was getting a compile error where code that was known to work
>> wouldn't compile because there was only one argument passed to parseInt in
>> ActionScript source.
>>
>> ActionScript defines parseInt as having one required parameter and one
>> default parameter so it should have compiled.
>>
>> Thus, the compile error was likely due to the bad typedefs build Justin
>> referred to earlier in a separate thread.
>>
>> It would not be my recommendation to have us add default parameters to all
>> of the places we could for "code clarity" or performance. Folks who write
>> code in ActionScript should know or can find from the documentation that,
>> for example, the second parameter to parseInt is optional and thus would
>> wonder why someone bothered to add it.  If the second parameter isn't
>> there, the assumption should be that the default parameter is used.
>>
>> Now, if there is a performance advantage to having the output JS always
>> set 10 if the second parameter is not specified to parseInt, then that
>> sounds like a good idea.  Please file a JIRA so we don't forget.
>>
>> But, IMO, we are writing ActionScript and we should not make a practice of
>> supplying default parameters.  Please figure out why your typedefs aren't
>> building and remove the optional parameter for parseInt from CSSUtils.as.
>>
>> Thanks,
>> -Alex
>>
>>
>> On 3/14/17, 8:24 PM, "Greg Dove" <greg.d...@gmail.com> wrote:
>>
>> >I think code clarity is one thing, but performance is another - that
>> >should
>> >be faster, so I ran a quick check.
>> >
>> >I know it can vary across browsers, but
>> >
>> >var timeOne = function(){var d=new Date();var b=0; for (var
>> >i=0;i<10000000;i++) {b= parseInt(""+(127/255)*1000, 10) / 1000;}
>> >console.log(new Date().getTime()-d.getTime());}
>> >timeOne()
>> >approx 715 ms in my chrome over multiple runs
>> >
>> >var timeTwo = function(){var d=new Date();var b=0; for (var
>> >i=0;i<10000000;i++) {b= parseInt(""+(127/255)*1000) / 1000;}
>> >console.log(new Date().getTime()-d.getTime());}
>> >timeTwo ()
>> >approx 870 ms in my chrome over multiple runs
>> >
>> >so (within the limits of this *very* basic test) I say keep it, for
>> >clarity
>> >and speed (about 20% faster)
>> >
>> >On Wed, Mar 15, 2017 at 3:26 PM, Justin Mclean <jus...@classsoftware.com
>> >
>> >wrote:
>> >
>> >> Hi,
>> >>
>> >> > Please revert CSSUtils and investigate why parseInt is requiring the
>> >> second argument.
>> >>
>> >> Even if it is a typedef bug IMO passing the base there makes the code
>> >> intent clearer as the code is dealing with both base 16 and base 10
>> >>numbers.
>> >>
>> >> This is the code in question:
>> >>         public static function attributeFromColor(value:uint):String
>> >>         {
>> >>             var hexVal:String = value.toString(16);
>> >>                         if(value > 16777215)
>> >>                         {
>> >>                 //rgba -- return rgba notation
>> >>                 var rgba:Array = hexVal.match(/.{2}/g);
>> >>                 for(var i:int = 0; i < 4; i++)
>> >>                 {
>> >>                     rgba[i] = parseInt(rgba[i], 16);
>> >>                 }
>> >>                 rgba[3] = parseInt(""+(rgba[3]/255)*1000, 10) / 1000;
>> >>                                 return "rgba(" + rgba.join(",") + ")";
>> >>                         }
>> >>             return "#" + StringPadder.pad(hexVal,"0",6);
>> >>         }
>> >>
>> >> I added the “,10” to the second parseInt.
>> >>
>> >> What do others think? Should it stay or should it go?
>> >>
>> >> Thanks,
>> >> Justin
>>
>>
>

Reply via email to