code: function wrapInstanceMethods(klass, methodNames) {
    validateMethodNames(methodNames);
    wrapFunctions(klass.prototype, methodNames);
    return klass;
  }
docs: Wraps instance methods whose name ends with Async, or are GeneratorFunctions.
  Any GeneratorFunction is wrapped with bluebird.coroutine(), and others with
  bluebird.method(). Accepts an optional array of method names, wrapping only
  those found in the array, and disabling the Async suffix check. Returns the
  class.
  
  @param   {function} klass         The class to wrap
  @param   {string[]} [methodNames] Optional array of method names
  @returns {function} The supplied class
  @throws  {Error}    If methodNames is provided, but is not an array