es-abstract
Version:
ECMAScript spec abstract operations.
17 lines (14 loc) • 495 B
JavaScript
var hasOwn = require('hasown');
module.exports = function isPromiseCapabilityRecord(value) {
return !!value
&& typeof value === 'object'
&& hasOwn(value, '[[Resolve]]')
&& typeof value['[[Resolve]]'] === 'function'
&& hasOwn(value, '[[Reject]]')
&& typeof value['[[Reject]]'] === 'function'
&& hasOwn(value, '[[Promise]]')
&& !!value['[[Promise]]']
&& typeof value['[[Promise]]'] === 'object'
&& typeof value['[[Promise]]'].then === 'function';
};
;