mopz0506
狐狸大王
狐狸大王
  • UID811
  • 注册日期2004-12-13
  • 最后登录2006-07-13
  • 发帖数539
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:1498回复:1

看到 FF 中 JavaScript 的一个很神奇的 bug,

楼主#
更多 发布于:2005-09-26 22:20
顺便说一句,eyou.com 对 Firefox 兼容性很好,大家如果有这方面需要的话,可以考虑支持这样的公司。

http://team.eyou.com/?q=node/347

greasemonkey 中的搞笑注释
lzlhero's picture
Submitted by lzlhero on 二, 2005-09-13 18:20.

今天读 greasemonkey 的源代码, 发现了一个非常有意思的注释. 因为我看到一个非常无厘头的
eval("42");
所以, 才引起了我的注意, 下面就是这段注释的内容.

  // This is the most amazing thing I have ever seen.
  // Multiple statements in the JavaScript interpreter were causing a crash
  // in FF 1.0.x.
  // I described it to Brendan, and, after a bit of thought, he knew right off
  // the top of his head that adding a pointless eval() would fix it. Magic.
  eval("42");
  var sandbox = new this.sandboxCtor();
  var storage = new GM_ScriptStorage(script);
  var logger = new GM_ScriptLogger(script);
  var xmlhttpRequester = new GM_xmlhttpRequester(this.unsafeContentWin,
                                                 this.chromeWindow);

上面注释的意思是说

在firefox1.0.X 中进行乘法运算会引起 JavaScript 引擎崩溃. geasemonkey 的作者跟 Brendan (JavaScript 之父) 描述了这一现象. Brendan想了一会儿, 然后告诉他说, 在运算最前面加一个无意义的 eval() 就可以修复这个错误, 这就是我们所看到的 eval("42") 的由来.
宇宙火星
非常火狐
非常火狐
  • UID182
  • 注册日期2004-11-26
  • 最后登录2006-04-19
  • 发帖数660
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-09-26 22:20
看过eyou的开发者blog
那天浏览器报告eval错误,我查了发现是JScript代码。不知道怎么回事。
游客

返回顶部