{"ScriptPreparationCode":null,"TestCases":[{"Name":"JSON.stringify","Code":"const data1 = {\r\n section: {\r\n id: \u0027test\u0027,\r\n },\r\n block: {\r\n id: \u0027test\u0027,\r\n }\r\n}\r\n\r\nconst data2 = {\r\n section: {\r\n id: \u0027testing\u0027,\r\n },\r\n block: undefined\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n return JSON.stringify(a) === JSON.stringify(b);\r\n}\r\n\r\nisEqual(data1, data2);","IsDeferred":false},{"Name":"Naive deepEqual","Code":"const data1 = {\r\n section: {\r\n id: \u0027test\u0027,\r\n },\r\n block: {\r\n id: \u0027test\u0027,\r\n }\r\n}\r\n\r\nconst data2 = {\r\n section: {\r\n id: \u0027testing\u0027,\r\n },\r\n block: undefined\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a != b) {\r\n return false;\r\n }\r\n\r\n if (a == b) {\r\n return true;\r\n }\r\n \r\n const hasDifferentProperties = Object.entries(a).some(\r\n ([key, value]) =\u003E {\r\n if (value == null \u0026\u0026 b[key] != null) {\r\n return true;\r\n }\r\n \r\n if (value != null \u0026\u0026 b[key] == null) {\r\n return true;\r\n }\r\n \r\n if (typeof value === \u0027Object\u0027) {\r\n return Object.entries(value).some(([k, v]) =\u003E v != b[key][k]);\r\n }\r\n \r\n return value != b[key];\r\n },\r\n );\r\n}\r\n\r\nisEqual(data1, data2);","IsDeferred":false}]}