{"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]}];\r\n\r\nasync function H(m) {\r\n const msgUint8 = new TextEncoder().encode(m) \r\n const hashBuffer = await crypto.subtle.digest(\u0027SHA-1\u0027, msgUint8) \r\n const hashArray = Array.from(new Uint8Array(hashBuffer)) \r\n const hashHex = hashArray.map(b =\u003E b.toString(16).padStart(2, \u00270\u0027)).join(\u0027\u0027)\r\n return hashHex;\r\n}\r\n\r\nasync function compare(a, b) {\r\n return await H(a) === await H(b);\r\n}\r\n","TestCases":[{"Name":"JSON.stringify","Code":"JSON.stringify(window.foo) === JSON.stringify(window.bar);","IsDeferred":false},{"Name":"H","Code":"compare(window.foo, window.bar)","IsDeferred":false}]}