Spaces:
Sleeping
Sleeping
; | |
var functionName = require("./function-name"); | |
/** | |
* Returns a display name for a value from a constructor | |
* | |
* @param {object} value A value to examine | |
* @returns {(string|null)} A string or null | |
*/ | |
function className(value) { | |
return ( | |
(value.constructor && value.constructor.name) || | |
// The next branch is for IE11 support only: | |
// Because the name property is not set on the prototype | |
// of the Function object, we finally try to grab the | |
// name from its definition. This will never be reached | |
// in node, so we are not able to test this properly. | |
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name | |
(typeof value.constructor === "function" && | |
/* istanbul ignore next */ | |
functionName(value.constructor)) || | |
null | |
); | |
} | |
module.exports = className; | |