function isPromiseLike(x) {
		return x && typeof x.then === 'function';
	}
Determines if x is promise-like, i.e. a thenable object
NOTE: Will return true for *any thenable object*, and isn't truly
safe, since it may attempt to access the `then` property of x (i.e.
 clever/malicious getters may do weird things)
@param {*} x anything
@returns {boolean} true if x is promise-like