bug1607670-3.js (542B)
1 let c = 0; 2 function f1() { 3 c++; 4 } 5 function LoggingProxyHandlerWrapper(name, handler={}) { 6 return new Proxy(handler, { 7 get(x, id) { 8 return function (...args) { 9 return Reflect[id].apply(null, args); 10 }; 11 } 12 }); 13 } 14 function LoggingProxy(name, target) { 15 return new Proxy(f1, new LoggingProxyHandlerWrapper(name)); 16 } 17 function test() { 18 let proxy = new LoggingProxy("proto", {}); 19 for (let i = 0; i < 2000; i++) { 20 new proxy(); 21 } 22 assertEq(c, 2000); 23 } 24 test();