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;
22