lib0
Version:
> Monorepo of isomorphic utility functions
65 lines (56 loc) • 1.58 kB
JavaScript
var math = require('./math-08e068f9.cjs');
var binary = require('./binary-ac8e39e2.cjs');
/**
* Utility helpers for working with numbers.
*
* @module number
*/
const MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER;
const MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER;
const LOWEST_INT32 = 1 << 31;
const HIGHEST_INT32 = binary.BITS31;
const HIGHEST_UINT32 = binary.BITS32;
/* c8 ignore next */
const isInteger = Number.isInteger || (num => typeof num === 'number' && isFinite(num) && math.floor(num) === num);
const isNaN = Number.isNaN;
const parseInt = Number.parseInt;
/**
* Count the number of "1" bits in an unsigned 32bit number.
*
* Super fun bitcount algorithm by Brian Kernighan.
*
* @param {number} n
*/
const countBits = n => {
n &= binary.BITS32;
let count = 0;
while (n) {
n &= (n - 1);
count++;
}
return count
};
var number = /*#__PURE__*/Object.freeze({
__proto__: null,
MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,
MIN_SAFE_INTEGER: MIN_SAFE_INTEGER,
LOWEST_INT32: LOWEST_INT32,
HIGHEST_INT32: HIGHEST_INT32,
HIGHEST_UINT32: HIGHEST_UINT32,
isInteger: isInteger,
isNaN: isNaN,
parseInt: parseInt,
countBits: countBits
});
exports.HIGHEST_INT32 = HIGHEST_INT32;
exports.HIGHEST_UINT32 = HIGHEST_UINT32;
exports.LOWEST_INT32 = LOWEST_INT32;
exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
exports.MIN_SAFE_INTEGER = MIN_SAFE_INTEGER;
exports.countBits = countBits;
exports.isInteger = isInteger;
exports.isNaN = isNaN;
exports.number = number;
exports.parseInt = parseInt;
//# sourceMappingURL=number-466d8922.cjs.map
;