| '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; | |
| } | |
| }; |