Documentación
V8 es el motor de JavaScript y WebAssembly de alto rendimiento de código abierto de Google, escrito en C++. Se utiliza en Chrome y en Node.js, entre otros.
Esta documentación está dirigida a desarrolladores de C++ que deseen utilizar V8 en sus aplicaciones, así como a cualquier persona interesada en el diseño y rendimiento de V8. Este documento te introduce a V8, mientras que el resto de la documentación te muestra cómo usar V8 en tu código y describe algunos de sus detalles de diseño, además de proporcionar un conjunto de benchmarks de JavaScript para medir el rendimiento de V8.
Acerca de V8
V8 implementa ECMAScript y WebAssembly, y funciona en sistemas Windows, macOS y Linux que utilizan procesadores x64, IA-32 o ARM. Otros sistemas (IBM i, AIX) y procesadores (MIPS, ppcle64, s390x) se mantienen externamente; consulta puertos. V8 se puede integrar en cualquier aplicación C++.
V8 compila y ejecuta código fuente de JavaScript, maneja la asignación de memoria para objetos y recolecta objetos basura que ya no necesita. El recolector de basura generacional, preciso y de parada total de V8 es una de las claves de su rendimiento.
JavaScript se usa comúnmente para scripting del lado del cliente en un navegador, siendo utilizado para manipular objetos del Modelo de Objetos del Documento (DOM), por ejemplo. Sin embargo, el DOM no suele ser proporcionado por el motor de JavaScript, sino por un navegador. Esto también se aplica a V8: Google Chrome proporciona el DOM. Sin embargo, V8 ofrece todos los tipos de datos, operadores, objetos y funciones especificados en el estándar ECMA.
V8 permite que cualquier aplicación C++ exponga sus propios objetos y funciones al código JavaScript. Depende de ti decidir qué objetos y funciones quieres exponer a JavaScript.
Resumen de la documentación
- Compilando V8 desde el código fuente
- Contribuyendo
- Código respetuoso
- La API pública de V8 y su estabilidad
- Convertirse en un colaborador de V8
- Responsabilidad del colaborador
- Pruebas web de Blink (también conocidas como pruebas de diseño)
- Evaluando cobertura de código
- Proceso de lanzamiento
- Guías para revisión de diseño
- Implementación y envío de características del lenguaje JavaScript/WebAssembly
- Lista de verificación para el envío de características de WebAssembly
- Bisect de flakes
- Gestión de puertos
- Soporte oficial
- Fusionando y parcheando
- Construcción de integración con Node.js
- Reportando errores de seguridad
- Ejecutando benchmarks localmente
- Pruebas
- Triaging de problemas
- Depuración
- Depuración ARM con el simulador
- Compilación cruzada y depuración para ARM/Android
- Depuración de funciones integradas con GDB
- Depuración mediante el Protocolo de Inspector de V8
- Integración de la Interfaz de Compilación JIT de GDB
- Investigando fugas de memoria
- API de trazado de pila
- Usando D8
- Herramientas de V8
- Integrando V8
- Bajo el capó
- Escribiendo JavaScript optimizable