code: function(reason) {
          if(this._promise.isResolved()) {
              return;
          }
  
          if(vow.isPromise(reason)) {
              reason = reason.then(function(val) {
                  var defer = vow.defer();
                  defer.reject(val);
                  return defer.promise();
              });
              this._promise._resolve(reason);
          }
          else {
              this._promise._reject(reason);
          }
      }
docs: Rejects the corresponding promise with the given `reason`.
  
  @param {*} reason
  
  @example
  ```js
  var defer = vow.defer(),
  promise = defer.promise();
  
  promise.fail(function(reason) {
  // reason is "'something is wrong'" here
  });
  
  defer.reject('something is wrong');
  ```