jspm_packages/system-polyfills.src.js
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);
		}
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);
		}
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.
Fulfill - reject competitive race . Return a promise that will settle to the same state as the earliest input promise to settle .