{"ScriptPreparationCode":"const queryResults = {\r\n a: {},\r\n b: [2, 3, 4],\r\n c: 3,\r\n d: {\r\n a: 1,\r\n b: [],\r\n },\r\n};\r\n\r\nwindow.queryResults = queryResults;\r\n\r\nwindow.trackedResultsReflect = new Proxy(queryResults, {\r\n get(target, prop, receiver) {\r\n return Reflect.get(target, prop, receiver);\r\n }\r\n});\r\n\r\nwindow.trackedResultsProxy = new Proxy(queryResults, {\r\n get(target, prop, receiver) {\r\n return target[prop];\r\n }\r\n});\r\n\r\n\r\nwindow.trackedResultsDefineProperty = {};\r\nfor (const key of Object.keys(queryResults)) {\r\n Object.defineProperty(trackedResultsDefineProperty, key, {\r\n configurable: false,\r\n enumerable: true,\r\n get() {\r\n return queryResults[key];\r\n },\r\n });\r\n}\r\n\r\nwindow.trackedResultsMethods = {\r\n getC() {\r\n return queryResults.c;\r\n },\r\n getD() {\r\n return queryResults.d;\r\n }\r\n}\r\n\r\nwindow.trackedResultsGetter = {\r\n get c() {\r\n return queryResults.c;\r\n },\r\n get d() {\r\n return queryResults.d;\r\n }\r\n}","TestCases":[{"Name":"Proxy","Code":"window.trackedResultsProxy.d.a \u002B window.trackedResultsProxy.c","IsDeferred":false},{"Name":"defineProperty","Code":"window.trackedResultsDefineProperty.d.a \u002B window.trackedResultsDefineProperty.c","IsDeferred":false},{"Name":"getter","Code":"window.trackedResultsGetter.d.a \u002B window.trackedResultsGetter.c","IsDeferred":false},{"Name":"Proxy w/ Reflection","Code":"window.trackedResultsReflect.d.a \u002B window.trackedResultsReflect.c","IsDeferred":false},{"Name":"Methods","Code":"window.trackedResultsMethods.getD().a \u002B window.trackedResultsMethods.getC()","IsDeferred":false},{"Name":"Control (plain object access)","Code":"window.queryResults.d.a \u002B window.queryResults.c","IsDeferred":false}]}