Files
Simon Zünd a578545017 [deps] Update 'sinon' and '@types/sinon'
R=alexrudenko@chromium.org

Bug: None
Change-Id: I1f8dcaa62c6d5e90f37c34db1fd8fb2ed1a7369c
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5666839
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Auto-Submit: Simon Zünd <szuend@chromium.org>
2024-07-02 06:22:54 +00:00

29 lines
815 B
JavaScript

"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 "";
}
};