text: 'use strict';
  
  exports.__esModule = true;
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  
  exports.default = isPlainObject;
  var fnToString = function fnToString(fn) {
    return Function.prototype.toString.call(fn);
  };
  
  /**
   * @param {any} obj The object to inspect.
   * @returns {boolean} True if the argument appears to be a plain object.
   */
  function isPlainObject(obj) {
    if (!obj || (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object') {
      return false;
    }
  
    var proto = typeof obj.constructor === 'function' ? Object.getPrototypeOf(obj) : Object.prototype;
  
    if (proto === null) {
      return true;
    }
  
    var constructor = proto.constructor;
  
    return typeof constructor === 'function' && constructor instanceof constructor && fnToString(constructor) === fnToString(Object);
  }