On Jul 12, 2013, at 9:01 AM, Mark Miller wrote:
>
>
>
> On Fri, Jul 12, 2013 at 8:58 AM, Luke Hoban <[email protected]> wrote:
> >From: Allen Wirfs-Brock [mailto:[email protected]]
> >
>
> >>
> >> 2) Is it intentional that Number.toInteger(Infinity) returns true?
> >Huh? How's that?
> >
> >Number.toInteger is specified as the single step:
> >
> > 1 Return ToInteger(number)
> >
> >and step 4 of the abstract operation ToInteger(number):
> >
> > 4 If number is +0, -0, +∞, or -∞, return number.
> >
>
> Sorry, I meant 'isInteger'. Per your quoted section, toInteger(Infinity) is
> Infinity, so isInteger(Infinity) is true.
>
> And I find that equally bizarre and unpleasant.
ToInteger is an internal operation. Algorithms that call it can explicitly
check for infinities if it is important to them. However, a quick scan of its
current uses shows that passing through infinities is exactly want is needed in
most cases.
Number.toInteger is a language level function and it is certainly reasonable to
explicitly discuss what it should return for infinities (and for that matter
NaN and -0). So what do you think it should do for those cases?
Also, the current Math.isInteger spec. is just plan bogus:
3. If integer is not equal to number, return false.
What (in the spec.) does "not equal" mean? I must have been asleep at the
keyboard or maybe it's strawman language that slipped through into the spec.
without adequate review...
Allen
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss