32 lines
		
	
	
		
			756 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			756 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 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; |