Документация
V8 — это высокопроизводительный движок JavaScript и WebAssembly с открытым исходным кодом от Google, написанный на C++. Он используется в Chrome, Node.js и других проектах.
Эта документация предназначена для разработчиков на C++, которые хотят использовать V8 в своих приложениях, а также для всех, кого интересует дизайн и производительность V8. Этот документ вводит вас в основы V8, а остальная документация показывает, как использовать V8 в вашем коде, описывает некоторые детали его дизайна и предоставляет набор тестов JavaScript для измерения производительности V8.
О V8
V8 реализует ECMAScript и WebAssembly и работает на системах Windows, macOS и Linux с процессорами x64, IA-32 или ARM. Поддержка дополнительных систем (IBM i, AIX) и процессоров (MIPS, ppcle64, s390x) осуществляется внешними командами, см. порты. V8 можно встроить в любое приложение на C++.
V8 компилирует и выполняет исходный код JavaScript, управляет выделением памяти для объектов и собирает мусор, удаляя объекты, которые больше не используются. Stop-the-world, поколенческий, точный сборщик мусора V8 является одним из ключей к его производительности.
JavaScript часто используется для клиентского скриптинга в браузере, например, для управления объектами модели DOM. Однако DOM обычно предоставляется не движком JavaScript, а браузером. То же самое относится к V8 — Google Chrome предоставляет DOM. Однако V8 предоставляет все типы данных, операторы, объекты и функции, указанные в стандарте ECMA.
V8 позволяет любому приложению на C++ предоставлять свои объекты и функции для кода JavaScript. Вы сами решаете, какие объекты и функции вы хотите передать в JavaScript.
Обзор документации
- Сборка V8 из исходного кода
- Вклад в проект
- Уважительный код
- Публичный API V8 и его стабильность
- Как стать коммиттером V8
- Ответственность коммиттера
- Тесты Blink web (также известные как тесты макета)
- Оценка покрытия кода
- Процесс выпуска
- Руководство по обзору дизайна
- Реализация и выпуск функций языка JavaScript/WebAssembly
- Чек-лист по подготовке к выпуску функций WebAssembly
- Бисекция нестабильностей
- Обработка портов
- Официальная поддержка
- Слияние и исправления
- Интеграционная сборка с Node.js
- Сообщение об уязвимостях безопасности
- Запуск тестов производительности локально
- Тестирование
- Классификация проблем
- Отладка
- Встраивание V8
- Внутреннее устройство
- Написание оптимизируемого JavaScript