2015-02-21 2 views
0

Представьте, что я хочу проверить, как Object.keys() реализован в V8. Или String.prototype.indexOf(). Или любой другой метод JS.Есть ли удобный способ поиска и просмотра исходного кода реализации для конкретного метода JavaScript?

Есть ли удобный онлайн-ресурс для просмотра части исходного кода, который реализует определенную функцию без необходимости «grep» через всю базу кода двигателя?

Желаю, чтобы эта функция была включена в документы MDN!

+0

Это не то, что ясно, array.pop, например, имеет несколько реализаций, [один в JavaScript] (https://github.com/v8/v8-git-mirror/blob/master/src/array. js # L423-L441), [один в C++] (https://github.com/v8/v8-git-mirror/blob/master/src/builtins.cc#L407-L438) и [один в водороде] (https://github.com/v8/v8-git-mirror/blob/master/src/hydrogen.cc#L8315-L8372) (язык IR высокого уровня). И если вы даже можете понять реализации, которые, вероятно, знаете, достаточно хорошо, чтобы любой онлайн-ресурс сохранял пустую трату времени. – Esailija

+0

Hi Esailija, если вы снова прочитаете мой оригинальный вопрос, вы увидите, что я говорю об определенном языке (JavaScript) и конкретную реализацию (v8 или другие). Imho Жаль, что до сих пор нет онлайн-ресурса, который удобно позволяет быстро просмотреть детали реализации конкретного метода, изолированного от остальных. – Pensierinmusica

+0

Прочтите мой комментарий еще раз - я действительно занимался только V8 ... дело в том, что у вас есть идея, что метод просто реализуется где-то как отдельная автономная функция, и это все, но это неправильно – Esailija

ответ

1

в nodejs это работает для методов, написанных на JS (но не нативного кода):

console.log(Object.keys.toString()) 

Родной код написан на C++, я смотрю те, в источниках.

+0

Привет Андрас, когда вы говорите: «Я смотрю их в источниках», вы имеете в виду [здесь] (https://chromium.googlesource.com/v8/v8.git/+/master/src/)? Приветствия – Pensierinmusica

+0

не прямо в v8, так как я использую nodejs. Я просматриваю https://github.com/joyent/node, но узел отправляет полную копию v8 в качестве зависимости. У меня есть местная проверка, поэтому я могу выполнить поиск из командной строки. – Andras

+0

Спасибо, имеет смысл. Но все-таки, возвращаясь к исходному вопросу, означает ли это, что до сих пор нет онлайн-ресурса, который позволяет быстро просмотреть детали реализации конкретного метода, изолированного от остальных (по крайней мере, для одного движка, скажем, v8)? – Pensierinmusica

Смежные вопросы