.
This commit is contained in:
		
							
								
								
									
										28
									
								
								qwen/nodejs/node_modules/@sinonjs/commons/lib/function-name.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								qwen/nodejs/node_modules/@sinonjs/commons/lib/function-name.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
"use strict";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Returns a display name for a function
 | 
			
		||||
 * @param  {Function} func
 | 
			
		||||
 * @returns {string}
 | 
			
		||||
 */
 | 
			
		||||
module.exports = function functionName(func) {
 | 
			
		||||
    if (!func) {
 | 
			
		||||
        return "";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
        return (
 | 
			
		||||
            func.displayName ||
 | 
			
		||||
            func.name ||
 | 
			
		||||
            // Use function decomposition as a last resort to get function
 | 
			
		||||
            // name. Does not rely on function decomposition to work - if it
 | 
			
		||||
            // doesn't debugging will be slightly less informative
 | 
			
		||||
            // (i.e. toString will say 'spy' rather than 'myFunc').
 | 
			
		||||
            (String(func).match(/function ([^\s(]+)/) || [])[1]
 | 
			
		||||
        );
 | 
			
		||||
    } catch (e) {
 | 
			
		||||
        // Stringify may fail and we might get an exception, as a last-last
 | 
			
		||||
        // resort fall back to empty string.
 | 
			
		||||
        return "";
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user