| 123456789101112131415161718192021222324 | 
							- 'use strict';
 
- var callBound = require('call-bound');
 
- var $PromiseThen = callBound('Promise.prototype.then', true);
 
- var isObject = require('../helpers/isObject');
 
- // https://262.ecma-international.org/6.0/#sec-ispromise
 
- module.exports = function IsPromise(x) {
 
- 	if (!isObject(x)) {
 
- 		return false;
 
- 	}
 
- 	if (!$PromiseThen) { // Promises are not supported
 
- 		return false;
 
- 	}
 
- 	try {
 
- 		$PromiseThen(x); // throws if not a promise
 
- 	} catch (e) {
 
- 		return false;
 
- 	}
 
- 	return true;
 
- };
 
 
  |