Я изучаю источник v8, особенно в том, как инструмент "mksnapshot" содержит скомпилированное изображение собственных файлов javascript (runtime.js, json.js...) в двоичных файлах v8 и заметил, что он также включает (несколько) мини-версию источника. Например, при проверке содержимого исполняемого файла d8 я вижу следующий фрагмент:
var $JSON=global.JSON;
function Revive(a,b,c){
var d=a[b];
if((%_IsObject(d))){
if((%_IsArray(d))){
var g=d.length;
и в начале 'src/json.js' я вижу:
var $JSON = global.JSON;
function Revive(holder, name, reviver) {
var val = holder[name];
if (IS_OBJECT(val)) {
if (IS_ARRAY(val)) {
var length = val.length;
ясно, что оба фрагмента эквивалентны, но второй был преобразован в первый в процессе компиляции.
Я бы понял, был ли исходный код включен для проверки с помощью 'toString', но когда я вхожу в 'JSON.stringify' в d8, все, что я вижу, это 'function stringify() {[native code]}', так что точка этого?