{"ScriptPreparationCode":"object = { value: \u0027data\u0027, getData() {return this.value;} };\r\nObject.defineProperty(object, \u0027dataProperty\u0027, {\r\n get() { return this.value; }\r\n});\r\nproxy = new Proxy(object, {})\r\nproxyWithReflectHandler = new Proxy(object, {\r\n\tget(target, prop, receiver) {\r\n \treturn Reflect.get(target, prop, receiver)\r\n }\r\n})\r\nproxyWithHandler = new Proxy(object, {\r\n\tget(target, prop, receiver) {\r\n \treturn object[prop];\r\n }\r\n})","TestCases":[{"Name":"Object access","Code":"let x = object.value;","IsDeferred":false},{"Name":"Proxy access","Code":"let x = proxy.value","IsDeferred":false},{"Name":"Proxy with get handler access","Code":"let x = proxyWithHandler.value","IsDeferred":false},{"Name":"Use of simple getter","Code":"let x = object.getData();","IsDeferred":false},{"Name":"Use of defineProperty","Code":"let x = object.dataProperty;","IsDeferred":false},{"Name":"Proxy with get reflect handler access","Code":"let x = proxyWithReflectHandler.value","IsDeferred":false}]}