UNPKG

523 BJavaScriptView Raw
1var isSymbol = require('./isSymbol');
2
3/** Used as references for various `Number` constants. */
4var 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 */
13function 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
21module.exports = toKey;