fei.wang
9 天以前 ae7b22322555448d95fd56f505bafa325c167a26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict';
 
var callBound = require('call-bound');
 
// eslint-disable-next-line no-extra-parens
var $deref = /** @type {<T extends WeakKey>(thisArg: WeakRef<T>) => T | undefined} */ (callBound('WeakRef.prototype.deref', true));
 
/** @type {import('.')} */
module.exports = typeof WeakRef === 'undefined'
    ? function isWeakRef(_value) { // eslint-disable-line no-unused-vars
        return false;
    }
    : function isWeakRef(value) {
        if (!value || typeof value !== 'object') {
            return false;
        }
        try {
            // @ts-expect-error
            $deref(value);
            return true;
        } catch (e) {
            return false;
        }
    };