'use strict'; | |
var callBound = require('call-bind/callBound'); | |
var $deref = callBound('WeakRef.prototype.deref', true); | |
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 { | |
$deref(value); | |
return true; | |
} catch (e) { | |
return false; | |
} | |
}; |