What I remember, rephrased using code

> Number.MAX_SAFE_INTEGER = (2^53)-1;

yes. Presumably

Number.MIN_SAFE_INTEGER = -Number.MAX_SAFE_INTEGER;

Number.isSafeInteger(n) {
    return typeof n === 'number' &&
        Math.round(n) === n &&
        Number.MIN_SAFE_INTEGER <= n &&
        n <= Number.MAX_SAFE_INTEGER;
}

This has the important guarantee that

isSafeInteger(a) && isSafeInteger(b) && isSafeInteger(a+b) together imply
that a+b is the accurate sum of a and b.

Also

isSafeInteger(NaN) // false
isSafeInteger(new Integer(2)) // false
isSafeInteger(-0) // true
isSafeInteger(Infinity) // false

We also decided that toInteger is not needed given the other similar
coercion methods already on Math.

As for Number.isInteger, I don't remember.




On Thu, Aug 29, 2013 at 11:00 AM, Rick Waldron <[email protected]>wrote:

> At the last TC39 meeting we discussed the addition of the following
> items[0]:
>
> Number.MAX_SAFE_INTEGER = (2^53)-1
>
> Number.isInteger
>   - Infinity => false
>   - NaN => false
>   - value !== truncated value => false
>   - -0 => true
>
> Number.isSafeInteger
>   - -0 => true
>
>
>  This resolution of record doesn't include a consensus on these extensions
> as defined, but IIRC there was consensus on Mark's proposal. Jeff Walden
> noted[1] that there was no clear resolution and I apologize for this
> oversight.
>
> Rick
>
> [0]
> https://github.com/rwaldron/tc39-notes/blob/master/es6/2013-07/july-25.md#59-semantics-and-bounds-of-numberisinteger-and-numbermax_integer
>
> [1] https://bugzilla.mozilla.org/show_bug.cgi?id=885798#c12
>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
>
>


-- 
    Cheers,
    --MarkM
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to