因为Firefox是开源的,理论上我应该可以破解解释器的行为。让我们说也许我可以构建自己的探查器,或者对浏览器中允许和不允许的javascript行为引入更细粒度的限制。或者什么,不管......
那么在实践中这种事情有多容易?这是通过某种插件可以实现的吗?或者我需要重新编译解释器源?或者重新编译整个浏览器?
无论如何,翻译来源有多大?对于那些在大学里建造玩具编译器的人来说,这是一件很难的事吗?
答案 0 :(得分:5)
如果你只限于翻译,那么事情也不算太糟糕。如果你想处理两个JIT,那么显然更多的工作。在代码化方面,看起来我们正在谈论180k行代码(头文件和C ++文件),不包括正则表达式引擎和jits。
理解翻译并不是那么糟糕;一方面,http://developer.mozilla.org提供了大量文档,#jsapi
irc.mozilla.org
频道上的人通常很乐意回答问题。
如果你想要分析而不会过多地扰乱系统,你可能需要破解源代码的东西。对于支持功能方面的实验,您希望使用https://mozillalabs.com/zaphod/,我怀疑。
答案 1 :(得分:2)
Firefox JS引擎名为SpiderMonkey。你可以在那里找到有关它的信息: http://www.mozilla.org/js/spidermonkey/
我没有太多关注它,但它是用C语言写的,看起来足够容易。