{"ScriptPreparationCode":"var j1 = {\r\n \u0022S\u0022: {\r\n \u0022Property1\u0022: {\r\n \u0022Coord\u0022: 7951392.9519541,\r\n \u0022Property2\u0022: \u0022Solid\u0022,\r\n \u0022Property3\u0022: {\r\n \u0022Color\u0022: [\r\n 255,\r\n 255,\r\n 255,\r\n 59\r\n ]\r\n },\r\n \u0022BackgroundColour\u0022: {\r\n \u0022Color\u0022: [\r\n 255,\r\n 255,\r\n 0,\r\n 255\r\n ]\r\n }\r\n }\r\n }\r\n};\r\nvar j2 = {\r\n \u0022S\u0022: {\r\n \u0022Property1\u0022: {\r\n \u0022Coord\u0022: 7951392.9519541,\r\n \u0022Property2\u0022: \u0022Solid\u0022,\r\n \u0022Property3\u0022: {\r\n \u0022Color\u0022: [\r\n 255,\r\n 255,\r\n 255,\r\n 60\r\n ]\r\n },\r\n \u0022BackgroundColour\u0022: {\r\n \u0022Color\u0022: [\r\n 255,\r\n 255,\r\n 0,\r\n 255\r\n ]\r\n }\r\n }\r\n }\r\n};\r\nfunction isEqual(first, second) {\r\n if (first === undefined || first === null || second === undefined || second === null) {\r\n return first === second;\r\n }\r\n if (first.constructor === Object \u0026\u0026 second.constructor === Object) {\r\n var firstKeys = Object.keys(first).sort(function(i1, i2){ \r\n \treturn i1.localeCompare(i2);\r\n });\r\n var secondKeys = Object.keys(second).sort(function(i1, i2){ \r\n \treturn i1.localeCompare(i2);\r\n });\r\n if (firstKeys.length !== secondKeys.length) {\r\n return false;\r\n }\r\n var result = true;\r\n for (var i = 0; i \u003C firstKeys.length \u0026\u0026 result; i\u002B\u002B) {\r\n result \u0026\u0026= firstKeys[i] === secondKeys[i] \u0026\u0026 isEqual(first[firstKeys[i]], second[secondKeys[i]]);\r\n }\r\n return result;\r\n }\r\n\r\n if (first.constructor === Array \u0026\u0026 second.constructor === Array) {\r\n if (first.length !== second.length) {\r\n return false;\r\n }\r\n var result = true;\r\n for (var i = 0; i \u003C first.length \u0026\u0026 result; i\u002B\u002B) {\r\n result \u0026\u0026= isEqual(first[i], second[i]);\r\n }\r\n return result;\r\n }\r\n return first === second;\r\n}","TestCases":[{"Name":"Lodash","Code":"_.isEqual(j1, j1);\r\n_.isEqual(j1, j2);","IsDeferred":false},{"Name":"Manual","Code":"isEqual(j1, j1);\r\nisEqual(j1, j2);","IsDeferred":false}]}