function isPlain(value) {
  return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;
}
function isPlain(value) {
  return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;
}
function isPlain ( value ) { return isObject ( value ) && toString . call ( value ) === '[object Object]' && value . constructor === Object ; }
Returns whether an object appears to be a "plain" object - that is, a
direct instance of `Object`.

@param  {Object} value
@return {Boolean}
Returns whether an object appears to be a plain object - that is a direct instance of Object .