拦截JavaScript中的所有函数调用

3
我想做的是截取javascript中所有函数调用,无论是通过new Function还是function创建的。

换句话说,可能要为所有将被创建的函数做一个代理。在函数初始代码之前执行一些代码。
所以我的问题是:
  1. 有没有办法做到这一点?
  2. 有没有办法更改Function.prototype?它内置了configurable:false。能够更改吗?
  3. 我正在尝试在electron中完成这个操作,因此可以更改V8标志,启用实验
  4. 是否可以使用启用了--allow_natives_syntax标志的本地函数来完成此操作?
  5. 有没有办法更改内部[[Call]]?
我知道不应该这样做的所有理由。 我只对任何可行的方法感兴趣。
1个回答

2
  1. 有没有办法做到这一点?

没有。

  1. 有没有办法更改Function.prototype?它是内置的,configurable:false。可以更改吗?

没有。

  1. 是否可以使用启用了--allow_natives_syntax标志的本机函数完成此操作?

没有。

  1. 有没有办法更改内部[[Call]]?

没有。

如果您只对跟踪函数调用感兴趣,则可以使用V8现有的--trace标志。无法在JavaScript中复制该功能(否则该标志将不存在)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接