{"ScriptPreparationCode":"var date1 = new Date(Date.parse(\u00272018-11-07\u0027));\r\nwindow.obj1 = {a: [[], [1], [\u00271\u0027], [null], {b: 1}, date1]}, {a: [[], [1], [\u00271\u0027], [null], {b: 1}, date1]};\r\nwindow.obj2 = {a: [[], [1], [\u00271\u0027], [null], {b: 1}, date1]}, {a: [[], [1], [\u00271\u0027], [null], {b: 1}, date1]};\r\n\r\n\r\n\r\nfunction isFunction(functionToCheck) {\r\n var getType = {};\r\n return functionToCheck \u0026\u0026 getType.toString.call(functionToCheck) === \u0027[object Function]\u0027;\r\n}\r\n\r\nfunction objectsAreEqual1(first, second) {\r\n return JSON.stringify(first) === JSON.stringify(second);\r\n}\r\n\r\nfunction objectsAreEqual2(first, second) {\r\n if (first === undefined)\r\n return second === undefined;\r\n\r\n if (first === null)\r\n return second === null;\r\n\r\n if (second === undefined)\r\n return first === undefined;\r\n\r\n if (second === null)\r\n return first === null;\r\n\r\n if (isFunction(first))\r\n return isFunction(second);\r\n\r\n else if (Array.isArray(first)) {\r\n if (!Array.isArray(second))\r\n return false;\r\n else if (first.length !== second.length)\r\n return false;\r\n\r\n for (let i = 0; i \u003C first.length; i\u002B\u002B) {\r\n if (!objectsAreEqual2(first[i], second[i]))\r\n return false;\r\n }\r\n }\r\n else if (first instanceof Date) {\r\n if (!(second instanceof Date))\r\n return false;\r\n\r\n return first === second;\r\n }\r\n else if (typeof first === \u0027string\u0027) {\r\n if (typeof second !== \u0027string\u0027)\r\n return false;\r\n return first === second;\r\n }\r\n else if (typeof first === \u0027number\u0027) {\r\n if (typeof second !== \u0027number\u0027)\r\n return false;\r\n return first === second;\r\n }\r\n\r\n if (Object.keys(first).length !== Object.keys(second).length)\r\n return false;\r\n\r\n for (let key in first) {\r\n if (!(key in second))\r\n return false;\r\n\r\n if (!objectsAreEqual2(first[key], second[key]))\r\n return false;\r\n }\r\n return true;\r\n}","TestCases":[{"Name":"json.stringify","Code":"objectsAreEqual1(obj1, obj2)","IsDeferred":false},{"Name":"custom","Code":"objectsAreEqual2(obj1, obj2)","IsDeferred":false}]}