- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Mon, 13 Feb 2012 08:12:03 -0500
- To: Sigbjorn Finne <sigbjorn.finne@gmail.com>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
On 2/13/12 3:34 AM, Sigbjorn Finne wrote: > On Wed, Feb 8, 2012 at 5:28 AM, Boris Zbarsky <bzbarsky@mit.edu > <mailto:bzbarsky@mit.edu>> wrote: > > The current WebIDL algorithm for long long says: > > Set x to sign(x) * floor(abs(x)). > Set x to x modulo 2^64. > If x is greater than or equal to 2^63, then set x to x − 2^64. > If x < −(2^53 − 1) or x > 2^53 − 1, then throw a TypeError. > > This makes no sense. The justification is something about how your x > might have lost precision and so you may not be hitting the 64-bit > int you "wanted"... but in that case the check-and-throw should be > done before reduction mod 2^64. Doing it after just means the result > is somewhat random once your double is greater than 2^64. > > The purpose of the third step is to adjust sign, I'd say. Yes, of course. My point was that doing the fourth step after the second step is nonsensical. -Boris
Received on Monday, 13 February 2012 13:12:31 UTC