docs: function become(newPromise) {
          resolvedPromise = newPromise;
          promise.source = newPromise;
  
          array_reduce(messages, function (undefined, message) {
              Q.nextTick(function () {
                  newPromise.promiseDispatch.apply(newPromise, message);
              });
          }, void 0);
  
          messages = void 0;
          progressListeners = void 0;
      }