He estado estudiando la fuente v8, particularmente en cómo la herramienta 'mksnapshot' incluye una imagen compilada de los archivos javascript nativos (runtime.js, json.js ...) en los binarios de v8 y notó que también incluye una versión (un tanto) minimizada de la fuente. Por ejemplo, al inspeccionar el contenido del archivo ejecutable d8, veo el siguiente fragmento:¿Por qué v8 guarda el código fuente de javascript nativo en binarios generados?
var $JSON=global.JSON;
function Revive(a,b,c){
var d=a[b];
if((%_IsObject(d))){
if((%_IsArray(d))){
var g=d.length;
y al inicio de la 'src/json.js -Veo:
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;
claramente tanto de fragmentos son equivalentes, pero el segundo se transformó en el primero en el proceso de compilación.
Hubiera entendido si el código original se incluyó para inspeccionar con 'toString' pero cuando ingreso 'JSON.stringify' en d8 todo lo que veo es 'function stringify() {[native code]}', entonces qué es el punto de esto?
Deberías haber hecho esta pregunta durante Google IO 2012 :) –
Aquí hay algunas de mis observaciones sobre este tema. ¿Puede alguna forma guardar el resultado de este http://nodejs.org/api/vm.html#vm_vm_createscript_code_filename y ejecutarlo en un momento posterior? Cuando compila nodejs, parece que todavía no usa los archivos javascript ya que no puedo encontrarlos ni localizarlos en ningún lugar, excepto en la fuente. – Prospero