function race(promises) {
			if(typeof promises !== 'object' || promises === null) {
				return reject(new TypeError('non-iterable passed to race()'));
			}

			// Sigh, race([]) is untestable unless we return *something*
			// that is recognizable without calling .then() on it.
			return promises.length === 0 ? never()
				 : promises.length === 1 ? resolve(promises[0])
				 : runRace(promises);
		}
Fulfill-reject competitive race. Return a promise that will settle
to the same state as the earliest input promise to settle.

WARNING: The ES6 Promise spec requires that race()ing an empty array
must return a promise that is pending forever.  This implementation
returns a singleton forever-pending promise, the same singleton that is
returned by Promise.never(), thus can be checked with ===

@param {array} promises array of promises to race
@returns {Promise} if input is non-empty, a promise that will settle
to the same outcome as the earliest input promise to settle. if empty
is empty, returns a promise that will never settle.