{"ScriptPreparationCode":"function prep() {\r\n class BigFoo {\r\n constructor() {\r\n this.b = 2;\r\n this.c = 2;\r\n this.d = 2;\r\n this.e = 2;\r\n this.f = 2;\r\n this.g = 2;\r\n this.h = 2;\r\n }\r\n j() {}\r\n k() {}\r\n l() {}\r\n m() {}\r\n n() {}\r\n o() {}\r\n p() {}\r\n }\r\n\r\n class LilFoo {\r\n constructor() {\r\n this.a = 1;\r\n }\r\n i() {}\r\n }\r\n\r\n function bigBar() {\r\n return {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n }\r\n\r\n function lilBar() {\r\n return {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n }\r\n\r\n const handlersP = {\r\n get: (target, key) =\u003E target[key],\r\n set: (target, key, val) =\u003E {\r\n target[key] = val;\r\n },\r\n };\r\n\r\n const handlersD = {\r\n get() {\r\n return bValue;\r\n },\r\n set(newValue) {\r\n bValue = newValue;\r\n },\r\n };\r\n return {\r\n BigFoo,\r\n LilFoo,\r\n handlersP,\r\n handlersD,\r\n bigBar,\r\n lilBar\r\n }\r\n}\r\n\r\n\r\nfunction _proxy(target, handlers) {\r\n for (const key in target) {\r\n Object.defineProperty(target, key, handlers);\r\n }\r\n}","TestCases":[{"Name":"Large Proxy - literal","Code":"const {BigFoo, LilFoo, bigBar, lilBar, handlersP, handlersD} = prep();\r\n const _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n const bigFoo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const proxy = new Proxy(bigFoo, handlersP);","IsDeferred":false},{"Name":"Small Proxy - literal","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const lilFoo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n\r\n const proxy = new Proxy(lilFoo, handlersP)","IsDeferred":false},{"Name":"Large Proxy - class","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep();\r\n const _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n\r\n const bigFoo = new BigFoo();\r\n\r\n const proxy = new Proxy(bigFoo, handlersP)","IsDeferred":false},{"Name":"Small Proxy - class","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const lilFoo = new LilFoo();\r\n\r\n const proxy = new Proxy(lilFoo, handlersP)","IsDeferred":false},{"Name":"Large GetterSetter - literal","Code":"const {BigFoo, LilFoo,bigBar, lilBar, handlersP, handlersD} = prep();\r\n const _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n const bigFoo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const proxy = _proxy(bigFoo, handlersD);","IsDeferred":false},{"Name":"Small GetterSetter - literal","Code":"const {BigFoo, LilFoo,bigBar, lilBar, handlersP, handlersD} = prep();\r\n const _foo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const lilFoo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n\r\nconst proxy = _proxy(lilFoo, handlersD);","IsDeferred":false},{"Name":"Large GetterSetter - class","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n\r\n const bigFoo = new BigFoo(); \r\nconst proxy = _proxy(bigFoo, handlersD);","IsDeferred":false},{"Name":"Small GetterSetter - class","Code":"const {BigFoo, LilFoo,bigBar, lilBar, handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const lilFoo = new LilFoo();\r\nconst proxy = _proxy(lilFoo, handlersD);","IsDeferred":false},{"Name":"control case","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n const bigFoo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\nconst proxy = bigFoo;","IsDeferred":false},{"Name":"Large Proxy - factory","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\n const _foo = {\r\n a: 1,\r\n i: () =\u003E {},\r\n };\r\n const bigFoo = bigBar();\r\n\r\n const proxy = new Proxy(bigFoo, handlersP);","IsDeferred":false},{"Name":"Small Proxy - factory","Code":"const {BigFoo, LilFoo, bigBar, lilBar,handlersP, handlersD} = prep(); \r\nconst _foo = {\r\n b: 2,\r\n c: 2,\r\n d: 2,\r\n e: 2,\r\n f: 2,\r\n g: 2,\r\n h: 2,\r\n j: () =\u003E {},\r\n k: () =\u003E {},\r\n l: () =\u003E {},\r\n m: () =\u003E {},\r\n n: () =\u003E {},\r\n o: () =\u003E {},\r\n p: () =\u003E {},\r\n };\r\n\r\n const lilFoo = lilBar();\r\n\r\n const proxy = new Proxy(lilFoo, handlersP)","IsDeferred":false}]}