>>225
Math.abs is C fabs(double) which compiles to FABS which is 1 cycle in all modern processors
xsum*(1-((xsum<0)<<1)) is at least 5 cycles and JS will insist on converting doubles to Int32 to use bitwise math(shifts).
There is no point optimizing it when Firefox uses asm code inlined for your methods.
x* ((((x >= 0)) << 1) - 1) is equivalent to xsum*(1-((xsum<0)<<1)) as 1 - 2:0 and 2:0 -1