You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					22 lines
				
				523 B
			
		
		
			
		
	
	
					22 lines
				
				523 B
			| 
								 
											4 years ago
										 
									 | 
							
								var isSymbol = require('./isSymbol');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** Used as references for various `Number` constants. */
							 | 
						||
| 
								 | 
							
								var INFINITY = 1 / 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Converts `value` to a string key if it's not a string or symbol.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * @private
							 | 
						||
| 
								 | 
							
								 * @param {*} value The value to inspect.
							 | 
						||
| 
								 | 
							
								 * @returns {string|symbol} Returns the key.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								function toKey(value) {
							 | 
						||
| 
								 | 
							
								  if (typeof value == 'string' || isSymbol(value)) {
							 | 
						||
| 
								 | 
							
								    return value;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  var result = (value + '');
							 | 
						||
| 
								 | 
							
								  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = toKey;
							 |