blob: c6d645c4d008137b59801ab758249afb60eba891 [file] [log] [blame]
Yang Guo4fd355c2019-09-19 08:59:031var 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;