- From: Cameron McCormack <cam@mcc.id.au>
- Date: Mon, 05 Mar 2012 16:07:42 +1100
- To: Boris Zbarsky <bzbarsky@MIT.EDU>
- CC: "public-script-coord@w3.org" <public-script-coord@w3.org>
Boris Zbarsky: > 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. > > And if you to the check before reduction mod 2^64, then you just have > the [EnforceRange] behavior, which people can already get if they want. Done: http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.xml.diff?r1=1.472;r2=1.473;f=h
Received on Monday, 5 March 2012 05:08:23 UTC