{"ScriptPreparationCode":"function isObject(o) {\r\n return Object.prototype.toString.call(o) === \u0027[object Object]\u0027;\r\n}\r\n\r\nfunction isPlainObject(o) {\r\n var ctor,prot;\r\n\r\n if (isObject(o) === false) return false;\r\n\r\n // If has modified constructor\r\n ctor = o.constructor;\r\n if (ctor === undefined) return true;\r\n\r\n // If has modified prototype\r\n prot = ctor.prototype;\r\n if (isObject(prot) === false) return false;\r\n\r\n // If constructor does not have an Object-specific method\r\n if (prot.hasOwnProperty(\u0027isPrototypeOf\u0027) === false) {\r\n return false;\r\n }\r\n\r\n // Most likely a plain Object\r\n return true;\r\n};","TestCases":[{"Name":"isPlainObject","Code":"const a = {a:1}\r\nisPlainObject(a)","IsDeferred":false},{"Name":"typeof and null check","Code":"const a = {a:1}\r\na !== null \u0026\u0026 typeof a === \u0027object\u0027","IsDeferred":false}]}