var isObject = require('./isObject.js');

var _setup = require('./_setup.js'); // Create a naked function reference for surrogate-prototype-swapping.


function ctor() {
  return function () {};
} // An internal function for creating a new object that inherits from another.


function baseCreate(prototype) {
  if (!isObject(prototype)) return {};
  if (_setup.nativeCreate) return _setup.nativeCreate(prototype);
  var Ctor = ctor();
  Ctor.prototype = prototype;
  var result = new Ctor();
  Ctor.prototype = null;
  return result;
}

module.exports = baseCreate;