You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.1 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							1.1 KiB
						
					
					
				| 'use strict';
 | |
| 
 | |
| var $WeakMap = typeof WeakMap === 'function' && WeakMap.prototype ? WeakMap : null;
 | |
| var $WeakSet = typeof WeakSet === 'function' && WeakSet.prototype ? WeakSet : null;
 | |
| 
 | |
| var exported;
 | |
| 
 | |
| if (!$WeakMap) {
 | |
| 	/** @type {import('.')} */
 | |
| 	// eslint-disable-next-line no-unused-vars
 | |
| 	exported = function isWeakMap(x) {
 | |
| 		// `WeakMap` is not present in this environment.
 | |
| 		return false;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| var $mapHas = $WeakMap ? $WeakMap.prototype.has : null;
 | |
| var $setHas = $WeakSet ? $WeakSet.prototype.has : null;
 | |
| if (!exported && !$mapHas) {
 | |
| 	/** @type {import('.')} */
 | |
| 	// eslint-disable-next-line no-unused-vars
 | |
| 	exported = function isWeakMap(x) {
 | |
| 		// `WeakMap` does not have a `has` method
 | |
| 		return false;
 | |
| 	};
 | |
| }
 | |
| 
 | |
| /** @type {import('.')} */
 | |
| module.exports = exported || function isWeakMap(x) {
 | |
| 	if (!x || typeof x !== 'object') {
 | |
| 		return false;
 | |
| 	}
 | |
| 	try {
 | |
| 		$mapHas.call(x, $mapHas);
 | |
| 		if ($setHas) {
 | |
| 			try {
 | |
| 				$setHas.call(x, $setHas);
 | |
| 			} catch (e) {
 | |
| 				return true;
 | |
| 			}
 | |
| 		}
 | |
| 		// @ts-expect-error TS can't figure out that $WeakMap is always truthy here
 | |
| 		return x instanceof $WeakMap; // core-js workaround, pre-v3
 | |
| 	} catch (e) {}
 | |
| 	return false;
 | |
| };
 |