{"ScriptPreparationCode":"var obj_empty = {};\r\nvar obj_sm = {};\r\nvar obj_md = {};\r\nvar obj_lg = {};\r\nvar obj_xl = {};\r\n\r\nfor (let i=0; i\u003C10000; i\u002B\u002B) {\r\n\tif (i\u003C10) obj_sm[Math.random()] = Math.random();\r\n \tif (i\u003C50) obj_md[Math.random()] = Math.random();\r\n \tif (i\u003C1000) obj_lg[Math.random()] = Math.random();\r\n \tobj_xl[Math.random()] = Math.random();\r\n}\r\n\r\nvar isObject = val =\u003E !!val \u0026\u0026 typeof val === \u0027object\u0027 \u0026\u0026 val.constructor === Object;","TestCases":[{"Name":"for in","Code":"const forIn = (o) =\u003E {\r\n \tif (!isObject(o)) return false;\r\n for (const k in o) if (o.hasOwnProperty(k)) return false;\r\n return true;\r\n}\r\n\r\nconsole.log(forIn(obj_empty));\r\nconsole.log(forIn(obj_sm));\r\nconsole.log(forIn(obj_md));\r\n","IsDeferred":false},{"Name":"Object.keys","Code":"const keys = (o) =\u003E isObject(o) \u0026\u0026 Object.keys(o).length \u003E 0;\r\n\r\nconsole.log(keys(obj_empty));\r\nconsole.log(keys(obj_sm));\r\nconsole.log(keys(obj_md));\r\n","IsDeferred":false}]}