【发布时间】:2012-03-13 17:02:06
【问题描述】:
我们的网站有一个相当复杂的 JS 应用程序,在最新的 Firefox 10 版本中失败了。这是由于 JS 解释器中的一个错误导致的,当变量显然不是时返回 NULL。此错误仅在 JIT 编译器处于活动状态时发生,而不是在它被禁用时发生。我们将向 Mozilla 报告该错误并尝试找到解决方法。
有没有办法在 Firefox 中为特定脚本禁用 JIT,从脚本内部?
谢谢。
【问题讨论】:
-
这听起来违反直觉,即使它是可能的。为了发出命令以禁用 JS 特定部分的 JIT,从 JS.您将需要编译器来解析 JS,而这只能由 JIT 完成。由于脚本已经被解析,因此启用或禁用 JIT 没有任何意义。
-
它可以是脚本标签或html页面上的专有属性。
-
我建议您使用某种浏览器版本嗅探来动态替换有问题的 JS 片段或显示功能减少的页面,直到 Mozilla 根据您的错误报告发布修复程序。我还会研究 Mozilla 说这不是错误的情况,因此我也会在最后查看解决方法。
-
实际上可以围绕编译器进行排序,据我所知,解释器无论如何都会首先解析代码。 JIT 似乎只在调用超过一定次数的重复或重复过程中起作用。但我承认,我没有对此进行足够的研究。
-
这个问题在这个网页上可见english-attack.com/game/say-what?content=101477 这是一个基于HTML5-ish特性的英语学习游戏。
标签: javascript firefox jit