123456789101112131415161718192021222324252627 |
- "use strict";
- 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;
|