JSImmediate::fromDouble() called from jsNumber() does moves from floating point to integer registers to check for loss of precision in a way that safely covers NaN. It is faster to do a floating point compare and a special check for NaN.
Created attachment 16809 [details] patch