code: function createCtorWrapper(Ctor) {
    return function() {
      var thisBinding = baseCreate(Ctor.prototype),
          result = Ctor.apply(thisBinding, arguments);
  
      // Mimic the constructor's `return` behavior.
      // See https://es5.github.io/#x13.2.2 for more details.
      return isObject(result) ? result : thisBinding;
    };
  }
docs: 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.