{"ScriptPreparationCode":"window.foo = [{accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027merp\u0027, ancestors: [\u0027blah\u0027, \u0027merp\u0027]}, {accessPath: \u0027derp\u0027, ancestors: [\u0027blah\u0027, \u0027derp\u0027]}];\r\nwindow.foo = [{accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027derp.merp\u0027, ancestors: [\u0027blah\u0027, \u0027blah\u0027]}, {accessPath: \u0027merp\u0027, ancestors: [\u0027blah\u0027, \u0027merp\u0027]}, {accessPath: \u0027derp\u0027, ancestors: [\u0027blah\u0027, \u0027changed\u0027]}];","TestCases":[{"Name":"_.isEqual","Code":"_.isEqual(window.foo, window.bar)","IsDeferred":false},{"Name":"JSON.stringify","Code":"JSON.stringify(window.foo) === JSON.stringify(window.bar);","IsDeferred":false},{"Name":"recusive native","Code":"function deepEqual(obj1, obj2) {\r\n if (obj1 === obj2) {\r\n return true; // If both objects are strictly equal, they are deeply equal\r\n }\r\n\r\n if (typeof obj1 !== \u0027object\u0027 || obj1 === null ||\r\n typeof obj2 !== \u0027object\u0027 || obj2 === null) {\r\n return false; // If either object is not an object or null, they are not deeply equal\r\n }\r\n\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n\r\n if (keys1.length !== keys2.length) {\r\n return false; // If the objects have different number of keys, they are not deeply equal\r\n }\r\n\r\n for (let key of keys1) {\r\n if (!obj2.hasOwnProperty(key) || !deepEqual(obj1[key], obj2[key])) {\r\n return false; // If the values of a key are not deeply equal, the objects are not deeply equal\r\n }\r\n }\r\n\r\n return true; // If all keys and values are deeply equal, the objects are deeply equal\r\n}\r\n\r\ndeepEqual(window.foo, window.bar)","IsDeferred":false}]}