function bind(fn) {
        if (typeof fn !== 'function') return fn;
        return wrapCallback(function (val) {
          var result = (promise.__asl_wrapper || propagateAslWrapper)(this, fn, val, next);
          if (result.error) {
            throw result.errorVal
          } else {
            return result.returnVal
          }
        });
      }
function bind(fn) {
        if (typeof fn !== 'function') return fn;
        return wrapCallback(function (val) {
          var result = (promise.__asl_wrapper || propagateAslWrapper)(this, fn, val, next);
          if (result.error) {
            throw result.errorVal
          } else {
            return result.returnVal
          }
        });
      }
function bind ( fn ) { if ( typeof fn !== 'function' ) return fn ; return wrapCallback ( function ( val ) { var result = ( promise . __asl_wrapper || propagateAslWrapper ) ( this , fn , val , next ) ; if ( result . error ) { throw result . errorVal } else { return result . returnVal } } ) ; }
wrap callbacks (success, error) so that the callbacks will be called as a continuations of the resolve or reject call using the __asl_wrapper created above.
wrap callbacks ( success error ) so that the callbacks will be called as a continuations of the resolve or reject call using the __asl_wrapper created above .