Aller au contenu principal

Utilisation de `d8`

d8 est le shell de développement propre à V8.

d8 est utile pour exécuter du JavaScript localement ou déboguer les modifications que vous avez apportées à V8. Construire V8 avec GN pour x64 produit un binaire d8 dans out.gn/x64.optdebug/d8. Vous pouvez appeler d8 avec l'argument --help pour plus d'informations sur l'utilisation et les options.

Imprimer à la ligne de commande

L'impression des résultats est probablement très importante si vous prévoyez d'utiliser d8 pour exécuter des fichiers JavaScript plutôt qu'interactivement. Cela peut être réalisé avec console.log :

$ cat test.js
console.log('Bonjour tout le monde!');

$ out.gn/x64.optdebug/d8 test.js
Bonjour tout le monde!

d8 est également livré avec une fonction globale print qui fait la même chose. Cependant, console.log est préféré à print car il fonctionne également dans les navigateurs web.

Lire une entrée

Avec read() vous pouvez stocker le contenu d'un fichier dans une variable.

d8> const license = read('LICENSE');
d8> license
"Cette licence s'applique à toutes les parties de V8 qui ne sont pas des bibliothèques
externes maintenues. Les bibliothèques externes utilisées par V8
sont :
(etc.)"

Utilisez readline() pour entrer du texte de manière interactive :

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

Charger des scripts externes

load() exécute un autre fichier JavaScript dans le contexte actuel, ce qui signifie que vous pouvez ensuite accéder à tout élément déclaré dans ce fichier.

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

$ d8
d8> load('util.js');
d8> greet('Monde!');
"Bonjour, Monde!"

Passer des options à JavaScript

Il est possible de rendre disponibles les arguments de ligne de commande dans votre code JavaScript au moment de l'exécution avec d8. Il suffit de les inclure après -- dans la ligne de commande. Vous pouvez ensuite les accéder au niveau supérieur de votre script à l'aide de l'objet arguments.

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

Vous pouvez maintenant accéder à un tableau des arguments à l'aide de l'objet arguments :

d8> arguments[0]
"salut"

Ressources supplémentaires

Le guide D8 de Kevin Ennis contient des informations très utiles sur l'exploration de V8 avec d8.

Origine du nom d8 : dans les débuts de V8, il y avait un “shell d'exemple”, dont le but était de démontrer comment V8 pouvait être intégré pour créer un shell JavaScript. Il était volontairement minimaliste et s'appelait simplement “shell”. Peu après, un “shell de développement” a été ajouté avec des fonctionnalités supplémentaires pour aider les développeurs dans leur travail quotidien, et il avait aussi besoin d'un nom. La raison exacte du choix de “d8” comme nom est perdue dans l'histoire ; il s'est imposé car “développeur” correspond à 8 caractères omis, donc “shell d8” fait sens comme abréviation, et correspond également bien à “V8” en tant que nom du projet.