Documentação
V8 é o mecanismo de JavaScript e WebAssembly de alto desempenho e código aberto do Google, escrito em C++. Ele é usado no Chrome e no Node.js, entre outros.
Esta documentação é direcionada a desenvolvedores C++ que desejam usar o V8 em suas aplicações, assim como para qualquer pessoa interessada no design e no desempenho do V8. Este documento apresenta o V8, enquanto a documentação restante mostra como usar o V8 no seu código e descreve alguns dos detalhes do seu design, além de fornecer um conjunto de benchmarks JavaScript para medir o desempenho do V8.
Sobre o V8
O V8 implementa ECMAScript e WebAssembly, e funciona em sistemas Windows, macOS e Linux que utilizam processadores x64, IA-32 ou ARM. Sistemas adicionais (IBM i, AIX) e processadores (MIPS, ppcle64, s390x) são mantidos externamente, veja ports. O V8 pode ser embutido em qualquer aplicação C++.
O V8 compila e executa código fonte JavaScript, lida com alocação de memória para objetos e realiza coleta de lixo para objetos que não são mais necessários. O coletor de lixo generacional, preciso e de parada total do V8 é uma das chaves para o desempenho do V8.
JavaScript é comumente usado para scripts do lado do cliente em navegadores, sendo utilizado, por exemplo, para manipular objetos do Modelo de Objeto de Documento (DOM). O DOM, no entanto, não é normalmente fornecido pelo mecanismo JavaScript, mas sim por um navegador. O mesmo acontece com o V8 — o Google Chrome fornece o DOM. No entanto, o V8 fornece todos os tipos de dados, operadores, objetos e funções especificados no padrão ECMA.
O V8 permite que qualquer aplicação C++ exponga seus próprios objetos e funções ao código JavaScript. Cabe a você decidir os objetos e funções que deseja expor ao JavaScript.
Visão geral da documentação
- Construindo o V8 a partir do código fonte
- Contribuindo
- Código respeitoso
- API pública do V8 e sua estabilidade
- Tornando-se um colaborador do V8
- Responsabilidade do colaborador
- Testes web do Blink (também conhecidos como testes de layout)
- Avaliação de cobertura de código
- Processo de lançamento
- Diretrizes de revisão de design
- Implementando e lançando recursos de linguagem JavaScript/WebAssembly
- Checklist para o preparo e lançamento de recursos WebAssembly
- Flake bisect
- Manuseio de portas
- Suporte oficial
- Mesclando e corrigindo
- Build de integração do Node.js
- Relatando bugs de segurança
- Executando benchmarks localmente
- Testando
- Triagem de problemas
- Depuração
- Embutindo o V8
- Por dentro dos bastidores
- Escrevendo JavaScript otimizável