Spaces:
Sleeping
Sleeping
| ; | |
| /** | |
| * 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 ""; | |
| } | |
| }; | |