_toKey.js (523B)
1 var isSymbol = require('./isSymbol'); 2 3 /** Used as references for various `Number` constants. */ 4 var INFINITY = 1 / 0; 5 6 /** 7 * Converts `value` to a string key if it's not a string or symbol. 8 * 9 * @private 10 * @param {*} value The value to inspect. 11 * @returns {string|symbol} Returns the key. 12 */ 13 function toKey(value) { 14 if (typeof value == 'string' || isSymbol(value)) { 15 return value; 16 } 17 var result = (value + ''); 18 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 19 } 20 21 module.exports = toKey;