function createCtorWrapper(Ctor) {
      return function() {
        var thisBinding = baseCreate(Ctor.prototype),
            result = Ctor.apply(thisBinding, arguments);

        // mimic the constructor's `return` behavior
        // http://es5.github.io/#x13.2.2
        return isObject(result) ? result : thisBinding;
      };
    }
Creates a function that produces an instance of `Ctor` regardless of
whether it was invoked as part of a `new` expression or by `call` or `apply`.

@private
@param {Function} Ctor The constructor to wrap.
@returns {Function} Returns the new wrapped function.