Saltar al contenido principal

Usando `d8`

d8 es la propia consola de desarrollo de V8.

d8 es útil para ejecutar JavaScript localmente o depurar cambios que hayas realizado en V8. Compilar V8 utilizando GN para x64 produce un binario d8 en out.gn/x64.optdebug/d8. Puedes llamar a d8 con el argumento --help para obtener más información sobre el uso y las banderas.

Imprimir en la línea de comandos​

La impresión de salida probablemente será muy importante si planeas usar d8 para ejecutar archivos JavaScript en lugar de interactuar directamente. Esto se puede lograr utilizando console.log:

$ cat test.js
console.log('¡Hola mundo!');

$ out.gn/x64.optdebug/d8 test.js
¡Hola mundo!

d8 también viene con una función global print que hace lo mismo. Sin embargo, se prefiere console.log sobre print ya que también funciona en navegadores web.

Leer entrada​

Utilizando read() puedes almacenar el contenido de un archivo en una variable.

d8> const license = read('LICENSE');
d8> license
"Esta licencia aplica a todas las partes de V8 que no son bibliotecas
mantenidas externamente. Las bibliotecas mantenidas externamente utilizadas por V8 son:
… (etc.)"

Usa readline() para ingresar texto de manera interactiva:

d8> const greeting = readline();
Bienvenido
d8> greeting
"Bienvenido"

Cargar scripts externos​

load() ejecuta otro archivo JavaScript en el contexto actual, lo que significa que luego podrás acceder a cualquier cosa declarada en ese archivo.

$ cat util.js
function greet(name) {
return 'Hola, ' + name;
}

$ d8
d8> load('util.js');
d8> greet('Mundo!');
"Hola, Mundo!"

Pasar banderas a JavaScript​

Es posible hacer que los argumentos de la línea de comandos estén disponibles para tu código JavaScript en tiempo de ejecución con d8. Solo pásalos después de -- en la línea de comandos. Luego puedes acceder a ellos a nivel superior de tu script utilizando el objeto arguments.

out.gn/x64.optdebug/d8 -- hola

Ahora puedes acceder a un arreglo de los argumentos utilizando el objeto arguments:

d8> arguments[0]
"hola"

Más recursos​

La guía D8 de Kevin Ennis tiene muy buena información sobre cómo explorar V8 utilizando d8.

Antecedentes del nombre d8: en los primeros días, V8 tenía un “programa de muestra”, cuyo propósito era demostrar cómo V8 podía integrarse para construir una consola de JavaScript. Era intencionalmente minimalista y simplemente se llamaba “shell”. Poco después, se añadió una “consola para desarrolladores” con más características prácticas para ayudar a los desarrolladores en su trabajo diario, y también necesitaba un nombre. La razón original por la cual “d8” fue elegido como nombre se ha perdido en la historia; se hizo popular porque “eveloper” son 8 caracteres omitidos, por lo que “d8 shell” tiene sentido como una abreviatura, y también encaja bien con “V8” como nombre del proyecto.