function any(promisesOrValues, onFulfilled, onRejected, onProgress) {

		function unwrapSingleResult(val) {
			return onFulfilled ? onFulfilled(val[0]) : val[0];
		}

		return some(promisesOrValues, 1, unwrapSingleResult, onRejected, onProgress);
	}
Initiates a competitive race, returning a promise that will resolve when
any one of the supplied promisesOrValues has resolved or will reject when
*all* promisesOrValues have rejected.

@param {Array|Promise} promisesOrValues array of anything, may contain a mix
     of {@link Promise}s and values
@param {function?} [onFulfilled] DEPRECATED, use returnedPromise.then()
@param {function?} [onRejected] DEPRECATED, use returnedPromise.then()
@param {function?} [onProgress] DEPRECATED, use returnedPromise.then()
@returns {Promise} promise that will resolve to the value that resolved first, or
will reject with an array of all rejected inputs.