static race(promises) {
    return new mr.MockPromise((resolve, reject) => {
      if (!promises.length) {
        resolve(undefined);
      }
      for (let i = 0, promise; i < promises.length; i++) {
        promise = promises[i];
        mr.MockPromise.resolve(promise).then(resolve, reject);
      }
    });
  }
/**
   * @param {!Array} promises
   * @return {!mr.MockPromise} A Promise that receives the result of the first
   *     Promise input to settle immediately after it settles.
   */
@param {!Array} promises
@return {!mr.MockPromise} A Promise that receives the result of the first
Promise input to settle immediately after it settles.
@param { !Array } promises @return { !mr . MockPromise } A Promise that receives the result of the first Promise input to settle immediately after it settles .
static race(promises) {
    return new mr.MockPromise((resolve, reject) => {
      if (!promises.length) {
        resolve(undefined);
      }
      for (let i = 0, promise; i < promises.length; i++) {
        promise = promises[i];
        mr.MockPromise.resolve(promise).then(resolve, reject);
      }
    });
  }
static race ( promises ) { return new mr . MockPromise ( ( resolve , reject ) => { if ( ! promises . length ) { resolve ( undefined ) ; } for ( let i = 0 , promise ; i < promises . length ; i ++ ) { promise = promises [ i ] ; mr . MockPromise . resolve ( promise ) . then ( resolve , reject ) ; } } ) ; }
@param {!Array} promises
 @return {!mr.MockPromise} A Promise that receives the result of the first
     Promise input to settle immediately after it settles.
@param { !Array } promises @return { !mr . MockPromise } A Promise that receives the result of the first Promise input to settle immediately after it settles .