| 12345678910111213141516171819202122232425262728293031323334353637383940 | 'use strict';var callBound = require('call-bound');var $toString = callBound('Object.prototype.toString');var hasSymbols = require('has-symbols')();var safeRegexTest = require('safe-regex-test');if (hasSymbols) {	var $symToStr = callBound('Symbol.prototype.toString');	var isSymString = safeRegexTest(/^Symbol\(.*\)$/);	/** @type {(value: object) => value is Symbol} */	var isSymbolObject = function isRealSymbolObject(value) {		if (typeof value.valueOf() !== 'symbol') {			return false;		}		return isSymString($symToStr(value));	};	/** @type {import('.')} */	module.exports = function isSymbol(value) {		if (typeof value === 'symbol') {			return true;		}		if (!value || typeof value !== 'object' || $toString(value) !== '[object Symbol]') {			return false;		}		try {			return isSymbolObject(value);		} catch (e) {			return false;		}	};} else {	/** @type {import('.')} */	module.exports = function isSymbol(value) {		// this environment does not support Symbols.		return false && value;	};}
 |