1var realNames = require('./_realNames'); 2 3/** Used for built-in method references. */ 4var objectProto = Object.prototype; 5 6/** Used to check objects for own properties. */ 7var 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 */ 16function 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 31module.exports = getFuncName; 32