| var realNames = require('./_realNames'); | |
| 
 | |
| /** Used for built-in method references. */ | |
| var objectProto = Object.prototype; | |
| 
 | |
| /** Used to check objects for own properties. */ | |
| var hasOwnProperty = objectProto.hasOwnProperty; | |
| 
 | |
| /** | |
|  * Gets the name of `func`. | |
|  * | |
|  * @private | |
|  * @param {Function} func The function to query. | |
|  * @returns {string} Returns the function name. | |
|  */ | |
| function getFuncName(func) { | |
|   var result = (func.name + ''), | |
|       array = realNames[result], | |
|       length = hasOwnProperty.call(realNames, result) ? array.length : 0; | |
| 
 | |
|   while (length--) { | |
|     var data = array[length], | |
|         otherFunc = data.func; | |
|     if (otherFunc == null || otherFunc == func) { | |
|       return data.name; | |
|     } | |
|   } | |
|   return result; | |
| } | |
| 
 | |
| module.exports = getFuncName;
 |