Proxy for window.Function

以下のように`Function`をProxyしてみたとする。
Function = new Proxy(Function, { apply(target, thisArg, args) { console.log("[Proxy] Function constructor usage detected:", args); return Reflect.apply(target, thisArg, args); } });
-- `new` を使う ------------------------------------- `new`を使うとProxyを通過せず、元の`Function`を使用する。
new Function("console.log('Test1')")(); new window.Function("console.log('Test2')")();
-- `new` を使わない場合(Proxyを通過する) ----------------- `new`を除くと、Proxyを通過するため、Proxy内の `console.log("[Proxy] Function constructor usage detected:", args);` が実行される。
Function("console.log('Test11')")(); window.Function("console.log('Test12')")();
-- `new` を使わない場合(Proxyを通過しない) -----------------
(()=>{}).constructor("console.log('Test()=>{}')")(); [].constructor.constructor("console.log('Test[]')")();