{"ScriptPreparationCode":"const obj = {\r\n a: \u0027a\u0027,\r\n b: \u0027b\u0027,\r\n c: \u0027c\u0027\r\n}\r\n\r\nconst proxyReflect = new Proxy(obj, {\r\n get(target, key, receiver) {\r\n return Reflect.get(target, key, receiver)\r\n }\r\n})\r\n\r\nconst proxy = new Proxy(obj, {\r\n get(target, key, receiver) {\r\n return target[key]\r\n }\r\n})\r\n\r\nfunction getAFromProxy() {\r\n return proxy.a;\r\n}\r\n\r\nfunction getA() {\r\n return obj.a;\r\n}\r\n\r\nfunction getAFromFunction() {\r\n return getA()\r\n}\r\n\r\nfunction getAFromProxyReflect() {\r\n return proxyReflect.a;\r\n}\r\n\r\nconst outerProxyGetFunction = new Proxy({}, {\r\n get(target, key, receiver) {\r\n return getAFromFunction()\r\n }\r\n})\r\n\r\nconst outerProxyProxy = new Proxy({}, {\r\n get() {\r\n return getAFromProxy()\r\n }\r\n})\r\n\r\nconst outerProxyProxyReflect = new Proxy({}, {\r\n get() {\r\n return getAFromProxyReflect()\r\n }\r\n})\r\n\r\nfunction getOuterProxyGetFunction(){\r\n return outerProxyGetFunction \r\n}\r\n\r\nfunction getOuterProxyProxyAccess(){\r\n return outerProxyProxy \r\n}\r\n\r\nfunction getOuterProxyReflectAccess(){\r\n return outerProxyProxyReflect \r\n}","TestCases":[{"Name":"get function","Code":"getAFromFunction()","IsDeferred":false},{"Name":"proxy target[key]","Code":"getAFromProxy()","IsDeferred":false},{"Name":"proxy reflect.get","Code":"getAFromProxyReflect()","IsDeferred":false},{"Name":"get function wrapped in proxy","Code":"getOuterProxyGetFunction().a","IsDeferred":false},{"Name":"proxy wrapped in proxy","Code":"getOuterProxyProxyAccess().a","IsDeferred":false},{"Name":"proxy reflect.get wrapped in proxy","Code":"getOuterProxyReflectAccess().a","IsDeferred":false}]}