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.