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.