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.