Documentation
V8 est un moteur JavaScript et WebAssembly open source haute performance de Google, écrit en C++. Il est utilisé dans Chrome et Node.js, entre autres.
Cette documentation s'adresse aux développeurs C++ qui souhaitent utiliser V8 dans leurs applications, ainsi qu'à toute personne intéressée par la conception et la performance de V8. Ce document vous présente V8, tandis que la documentation restante vous montre comment utiliser V8 dans votre code, décrit certains détails de sa conception et fournit un ensemble de benchmarks JavaScript pour mesurer la performance de V8.
À propos de V8
V8 implémente ECMAScript et WebAssembly, et fonctionne sur les systèmes Windows, macOS et Linux utilisant des processeurs x64, IA-32 ou ARM. Des systèmes supplémentaires (IBM i, AIX) et des processeurs supplémentaires (MIPS, ppcle64, s390x) sont maintenus en externe, voir ports. V8 peut être intégré dans toute application C++.
V8 compile et exécute le code source JavaScript, gère l'allocation mémoire pour les objets et collecte les objets inutilisés. Le ramasse-miettes précis, générationnel et bloquant de V8 est l'une des clés de la performance de V8.
JavaScript est couramment utilisé pour le scripting côté client dans un navigateur, par exemple pour manipuler des objets du modèle DOM (Document Object Model). Cependant, le DOM n'est généralement pas fourni par le moteur JavaScript lui-même, mais par un navigateur. Il en va de même pour V8 — Google Chrome fournit le DOM. Cependant, V8 fournit tous les types de données, opérateurs, objets et fonctions spécifiés dans la norme ECMA.
V8 permet à toute application C++ d'exposer ses propres objets et fonctions au code JavaScript. C'est à vous de décider quels objets et fonctions vous souhaitez exposer au JavaScript.
Vue d'ensemble de la documentation
- Construire V8 à partir de la source
- Contribuer
- Code respectueux
- API publique de V8 et sa stabilité
- Devenir un committer V8
- Responsabilité d'un committer
- Tests web Blink (alias tests de mise en page)
- Évaluation de la couverture de code
- Processus de publication
- Directives pour les revues de conception
- Mise en œuvre et expédition des fonctionnalités de langage JavaScript/WebAssembly
- Liste de vérification pour la mise en scène et l'expédition des fonctionnalités WebAssembly
- Bissection des anomalies
- Gestion des ports
- Support officiel
- Fusion et correction
- Construction de l'intégration de Node.js
- Signalement des bugs de sécurité
- Exécution des benchmarks localement
- Tests
- Tri des problèmes
- Débogage
- Débogage ARM avec le simulateur
- Compilation croisée et débogage pour ARM/Android
- Débogage des fonctions internes avec GDB
- Débogage via le protocole d'inspection V8
- Intégration de l'interface de compilation JIT de GDB
- Investigation des fuites de mémoire
- API de trace de pile
- Utilisation de D8
- Outils V8
- Intégrer V8
- Sous le capot
- Écrire du JavaScript optimisable