On 13/07/2013, at 01:24, Jeff Walden wrote: > On 07/12/2013 04:13 PM, Tab Atkins Jr. wrote: >> If you don't agree with that reasoning, then I suppose you'd argue >> that *all* numbers > 2^53 should return true, since they're all forced >> into being represented as integers? > > All numbers >= 2**53 except Infinity, yes. I think "isInteger" implies the > mathematical concept, with the only addition that it should pass -0. And > while it would somewhat unfortunately diverge from the ToInteger spec > operation, "toInteger" should imply the mathematical concept as well, and > only produce values that are mathematical integers. ("toInteger" should > probably convert -0 to -0 for consistency with "isInteger" on -0, but > probably I could go either way here.)
Everything from Math.pow(2,52) to Math.pow(2,53) are integers (if represented as IEE-754 doubles), because there's no bit left to represent Math.pow(2,-1): Math.pow(2,52) 4503599627370496 Math.pow(2,52).toString(2) "10000000000000000000000000000000000000000000000000000" Math.pow(2,52).toString(2).length 53 (Math.pow(2,52)-1).toString(2) "1111111111111111111111111111111111111111111111111111" (Math.pow(2,52)-1).toString(2).length 52 Math.pow(2,52)-0.5 4503599627370495.5 Math.pow(2,52)+0.5 4503599627370496 -- ( Jorge )(); _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss