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