github-pages-deploy-action/node_modules/@sinonjs/commons/lib/class-name.js

28 lines
921 B
JavaScript
Raw Normal View History

2020-01-28 13:08:03 +08:00
"use strict";
var functionName = require("./function-name");
2020-03-22 05:13:25 +08:00
/**
* 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) {
2020-01-28 13:08:03 +08:00
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
);
2020-03-22 05:13:25 +08:00
}
module.exports = className;