index.js
function step (err, val) {
    if (iter) {
      // generator step
      yielded = false
      isYieldable = false
      var state
      if (trycatch) {
        try {
          if (nothrow) state = iter.next(slice.call(arguments))
          else state = err ? iter.throw(err) : iter.next(val)
        } catch (err) {
          iter = null // catch err, break iteration
          return step(err)
        }
      } else {
        if (nothrow) state = iter.next(slice.call(arguments))
        else state = err ? iter.throw(err) : iter.next(val)
      }
      if (state && state.done) iter = null
      yielded = true
      isYieldable = yieldable.call(self, state.value, step, opts)
      if (!isYieldable && opts.yieldable) {
        isYieldable = opts.yieldable.call(self, state.value, step)
      }
      // next if generator returned non-yieldable
      if (!isYieldable && !iter) next(null, state.value)
    } else if (callback) {
      callback.apply(self, arguments)
      callback = null
    }
  }
function step (err, val) {
    if (iter) {
      // generator step
      yielded = false
      isYieldable = false
      var state
      if (trycatch) {
        try {
          if (nothrow) state = iter.next(slice.call(arguments))
          else state = err ? iter.throw(err) : iter.next(val)
        } catch (err) {
          iter = null // catch err, break iteration
          return step(err)
        }
      } else {
        if (nothrow) state = iter.next(slice.call(arguments))
        else state = err ? iter.throw(err) : iter.next(val)
      }
      if (state && state.done) iter = null
      yielded = true
      isYieldable = yieldable.call(self, state.value, step, opts)
      if (!isYieldable && opts.yieldable) {
        isYieldable = opts.yieldable.call(self, state.value, step)
      }
      // next if generator returned non-yieldable
      if (!isYieldable && !iter) next(null, state.value)
    } else if (callback) {
      callback.apply(self, arguments)
      callback = null
    }
  }
function step ( err , val ) { if ( iter ) { // generator step yielded = false isYieldable = false var state if ( trycatch ) { try { if ( nothrow ) state = iter . next ( slice . call ( arguments ) ) else state = err ? iter . throw ( err ) : iter . next ( val ) } catch ( err ) { iter = null // catch err, break iteration return step ( err ) } } else { if ( nothrow ) state = iter . next ( slice . call ( arguments ) ) else state = err ? iter . throw ( err ) : iter . next ( val ) } if ( state && state . done ) iter = null yielded = true isYieldable = yieldable . call ( self , state . value , step , opts ) if ( ! isYieldable && opts . yieldable ) { isYieldable = opts . yieldable . call ( self , state . value , step ) } // next if generator returned non-yieldable if ( ! isYieldable && ! iter ) next ( null , state . value ) } else if ( callback ) { callback . apply ( self , arguments ) callback = null } }
internal callback stepper

@param {object} err - callback error object
@param {...*} val - callback value(s)
internal callback stepper