From 09067ec8b1445cb18706eb24ce85945c1658578d Mon Sep 17 00:00:00 2001 From: toastal Date: Tue, 19 Oct 2021 15:37:05 +0700 Subject: [PATCH] Add safe integers https://tc39.es/ecma262/multipage/numbers-and-dates.html#sec-number.issafeinteger Add `maxSafeInteger`, `minSafeInteger`, and `isSafeInteger`. --- CHANGELOG.md | 1 + src/Data/Int.js | 6 ++++++ src/Data/Int.purs | 6 ++++++ 3 files changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba9e0fd..1698ab0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `maxSafeInteger`, `minSafeInteger`, `isSafeInteger` (#48 by @toastal) Bugfixes: diff --git a/src/Data/Int.js b/src/Data/Int.js index 9900e5e..f0684d7 100644 --- a/src/Data/Int.js +++ b/src/Data/Int.js @@ -65,3 +65,9 @@ exports.pow = function (x) { return Math.pow(x,y) | 0; }; }; + +exports.maxSafeInteger = Number.MAX_SAFE_INTEGER; + +exports.minSafeInteger = Number.MIN_SAFE_INTEGER; + +exports.isSafeInteger = Number.isSafeInteger; diff --git a/src/Data/Int.purs b/src/Data/Int.purs index 28952ed..6a5996b 100644 --- a/src/Data/Int.purs +++ b/src/Data/Int.purs @@ -249,3 +249,9 @@ foreign import fromStringAsImpl -> Maybe Int foreign import toStringAs :: Radix -> Int -> String + +foreign import maxSafeInteger :: Number + +foreign import minSafeInteger :: Number + +foreign import isSafeInteger :: Number -> Boolean