time-to-botec

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

_getFuncName.js (756B)


      1 var realNames = require('./_realNames');
      2 
      3 /** Used for built-in method references. */
      4 var objectProto = Object.prototype;
      5 
      6 /** Used to check objects for own properties. */
      7 var hasOwnProperty = objectProto.hasOwnProperty;
      8 
      9 /**
     10  * Gets the name of `func`.
     11  *
     12  * @private
     13  * @param {Function} func The function to query.
     14  * @returns {string} Returns the function name.
     15  */
     16 function getFuncName(func) {
     17   var result = (func.name + ''),
     18       array = realNames[result],
     19       length = hasOwnProperty.call(realNames, result) ? array.length : 0;
     20 
     21   while (length--) {
     22     var data = array[length],
     23         otherFunc = data.func;
     24     if (otherFunc == null || otherFunc == func) {
     25       return data.name;
     26     }
     27   }
     28   return result;
     29 }
     30 
     31 module.exports = getFuncName;