Firefox的JavaScript引擎和Chrome的V8有什么区别?

7

我发现一些文章称FF的JavaScript引擎部分地采用了Chrome的V8特性,甚至有些源代码来自V8!

如果是这样的话,我能否说用Chrome的V8替换Firefox中的JavaScript引擎易如反掌?

如果不是这样的话,两者有何区别?

2个回答

9
据我所知,Firefox使用的唯一V8源代码是已经分离到单独库中的内容(例如某些数字转换代码)。
不采用整个V8引擎的原因是它存在一些SpiderMonkey(Firefox中的JS引擎)没有的缺陷,缺少一些SpiderMonkey具有的功能,并且Firefox无法在V8团队完成之前引入新的JS特性。

但是在FF源代码的js/src文件夹中有一个名为V8的文件夹,所以我猜FF一定借用了一些来自Chrome的代码,这就让我感到困惑。你能告诉我说“Firefox would not be able to introduce new features for JS until the V8 folks got around to it”是什么意思吗? - Spry Mickael
1
@SpryMickael 这是V8基准测试(耶,Google为多个有些不相关的事情重复使用相同的名称),你只需查看文件夹即可知道。至于我的意思...如果Firefox只使用V8,它将无法引入新功能,直到这些功能被接受为止。当然,除非他们分叉了它,但这似乎更糟。 - Boris Zbarsky

0

Chrome引擎更快(Google声称)。

语法相同。

不要紧:我没有看到问题描述。 为什么他们不用V8替换整个Javascript引擎? 因为这是谷歌,他们不想在自己的代码中拥有超过1%的谷歌代码。他们想要“独立”。


实际上,语法并不相同。SpiderMonkey支持各种功能(如let),而V8不支持。 - Boris Zbarsky
如果你足够努力,你是可以做到的。但是很可能编写的JS只在其中一个平台上运行,因为它们没有实现相同的功能集。 - Boris Zbarsky
如果我放弃了FF中的这些功能,那么你的意思是我可以用V8替换Chrome中的FF的SpiderMonkey吗? - Spry Mickael
1
追踪流行JavaScript引擎的性能我们快了吗? - Ihab Shoully

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