fei.wang
10 天以前 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');
 
/** @type {undefined | ((thisArg: SharedArrayBuffer) => number)} */
var $byteLength = callBound('SharedArrayBuffer.prototype.byteLength', true);
 
/** @type {import('.')} */
module.exports = $byteLength
    ? function isSharedArrayBuffer(obj) {
        if (!obj || typeof obj !== 'object') {
            return false;
        }
        try {
            // @ts-expect-error TS can't figure out this closed-over variable is non-nullable, and it's fine that `obj` might not be a SAB
            $byteLength(obj);
            return true;
        } catch (e) {
            return false;
        }
    }
    : function isSharedArrayBuffer(_obj) { // eslint-disable-line no-unused-vars
        return false;
    };