code: function e(label, gen) {
    if (!gen) {
      gen = label;
      label = '';
    }
  
    if (!enabled) {
      return gen;
    }
  
    var hackErr = new Error('hack');
    hackErr.label = label;
  
    return function *() {
      try {
        return yield gen;
      } catch(err) {
        throw buildError(err, hackErr);
      }
    };
  }
docs: e
  @param  {String} label the label of the async task
  @required @param  {Any} gen   the object to yield
  @return {Function}       trunked function