【发布时间】:2019-07-19 14:07:55
【问题描述】:
我之前读过V8引擎源代码。我可以在其中找到 JavaScript 实现的代码,例如Array.js。
最近想再次查找数组排序的源码,发现JS部分已经去掉了。我只能找到array-sort.tq,它位于[v8/third_party/v8/builtins]。
我正在寻找的方法有问题吗?还是只是去掉了 JS 部分? JavaScript 开发人员很难知道实现的细节。
【问题讨论】:
-
为什么想知道排序实现的细节?它可以随时更改,唯一的保证是规范中的保证(最近确实发生了变化——排序变得稳定)。
-
我最近也注意到了这一点。从动机的角度来看,这似乎是一个不言而喻的问题:典型的 JS 开发人员希望查看实现以了解,例如,当
arr.length < 10可能解释各种程序行为时,使用插入排序而不是快速排序,那种东西。至少,之前用 JS 编写的整个文件都不见了,这似乎有点令人惊讶,所以值得问一下为什么/在哪里/发生了什么? -
@ggorlen:如果您的程序的行为因此而改变,那么您的程序就是错误的。
-
(但如果只是在学术上,这是一个有趣的问题)
-
当然公平到想知道为什么 JavaScript 实现消失了。 :-) 和/或只是出于好奇和教育原因想查看实现细节。
标签: javascript c++ v8