Files
react-native-devtools-frontend/node_modules/@sinonjs/commons/lib/class-name.js
T
Paul Lewis 40e2867bb7 [deps] Adds sinon
R=jacktfranklin@chromium.org

DISABLE_THIRD_PARTY_CHECK=Adding sinon to deps

Change-Id: If47962332a4d9a4b4f0edbe637bca4f9894545ba
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2562704
Auto-Submit: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
2020-11-27 10:25:34 +00:00

28 lines
921 B
JavaScript

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