function createBindWrapper(func, thisArg) {
      var Ctor = createCtorWrapper(func);

      function wrapper() {
        return (this instanceof wrapper ? Ctor : func).apply(thisArg, arguments);
      }
      return wrapper;
    }
Creates a function that wraps `func` and invokes it with the `this`
binding of `thisArg`.

@private
@param {Function} func The function to bind.
@param {*} [thisArg] The `this` binding of `func`.
@returns {Function} Returns the new bound function.