1var baseClamp = require('./_baseClamp'), 2 toInteger = require('./toInteger'); 3 4/** Used as references for various `Number` constants. */ 5var MAX_SAFE_INTEGER = 9007199254740991; 6 7/** 8 * Converts `value` to a safe integer. A safe integer can be compared and 9 * represented correctly. 10 * 11 * @static 12 * @memberOf _ 13 * @since 4.0.0 14 * @category Lang 15 * @param {*} value The value to convert. 16 * @returns {number} Returns the converted integer. 17 * @example 18 * 19 * _.toSafeInteger(3.2); 20 * // => 3 21 * 22 * _.toSafeInteger(Number.MIN_VALUE); 23 * // => 0 24 * 25 * _.toSafeInteger(Infinity); 26 * // => 9007199254740991 27 * 28 * _.toSafeInteger('3.2'); 29 * // => 3 30 */ 31function toSafeInteger(value) { 32 return value 33 ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER) 34 : (value === 0 ? value : 0); 35} 36 37module.exports = toSafeInteger; 38