有没有办法查看 JavaScript 默认方法源代码?

use*_*306 3 javascript specifications

有没有办法查看 JavaScript 默认方法源代码?例如 .sort() 或 .reverse()。我认为是 C 代码,但我在哪里可以阅读它?

The*_*est 5

SpiderMonkey 的 JavaScript Array 实现(在 Firefox 中使用)的代码中,您需要从查看array_sortarray_reverse函数开始。更一般地,寻找array_methods常数;它具有相关功能的索引。

V8 的 JavaScript Array 实现(在 Chrome 和 Opera 中使用)的代码中,您要分别查找ArraySortArrayReverse函数。寻找GlobalArray.prototype其他函数的索引。

JavaScript Core 的 JavaScript Array 实现(在 Safari 中使用)有点不寻常,因为Array.prototype.sort它的同类实际上是在 JavaScript 中实现的。您想要的排序函数只是sort在这个文件中命名。然而,并不是所有的Array.prototype函数系列都可以在该文件中找到。例如,我不确定在哪里reverse

Chakra 实现的源代码(在 IE 中使用)不可用,我怀疑它们可能永远不会。Presto 实现的源代码也是如此(以前在 Opera 中使用,在他们切换到 Blink/V8 之前)。

  • 从上面的链接很容易找到 V8 的数组源代码,尽管他们给出了 404。可能是因为这个答案是 5 年前给出的。https://chromium.googlesource.com/external/v8/+/refs/heads/master/src/array.js (2认同)