"use strict";
const _baseGetTag = require("./_baseGetTag.js");
const _getPrototype = require("./_getPrototype.js");
const isObjectLike$1 = require("./isObjectLike.js");
var baseGetTag = _baseGetTag, getPrototype = _getPrototype, isObjectLike = isObjectLike$1;
var objectTag = "[object Object]";
var funcProto = Function.prototype, objectProto = Object.prototype;
var funcToString = funcProto.toString;
var hasOwnProperty = objectProto.hasOwnProperty;
var objectCtorString = funcToString.call(Object);
function isPlainObject(value) {
  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {
    return false;
  }
  var proto = getPrototype(value);
  if (proto === null) {
    return true;
  }
  var Ctor = hasOwnProperty.call(proto, "constructor") && proto.constructor;
  return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
}
var isPlainObject_1 = isPlainObject;
module.exports = isPlainObject_1;
//# sourceMappingURL=isPlainObject.js.map
