time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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