В начале текущей недели создатель FFmpeg Фабрис Беллард и автор проекта QEMU Чарли Гордон объявили о первом публичном выпуске QuickJS.
Выпущенный по лицензии MIT, этот компактный JavaScript-движок поддерживает новейшую спецификацию языка ES2019.
Особенности движка QuickJS:
Небольшой и легко встраиваемый (движок состоит из нескольких файлов и не имеет внешней зависимости).
Быстрый интерпретатор (интерпретатор демонстрирует впечатляющую скорость, выполнив 56 000 тестов из ECMAScript Test Suite1 всего за 100 секунд на одноядерном процессоре).
ES2019 (поддержка ES2019 почти завершена, включая модули, асинхронные генераторы и полную Annex B для совместимости с устаревшими веб-сайтами).
Отсутствие внешних зависимостей (он может компилировать исходный код JavaScript в исполняемые файлы без необходимости установки внешних зависимостей).
Интерпретатор командной строки (интерпретатор командной строки поставляется с контекстной окраской и реализацией на Javascript).
Сборка «мусора» (он использует подсчет ссылок и цикл удаления для автоматического и детерминированного освобождения объектов, что уменьшает использование памяти и обеспечивает детерминированное поведение движка).
Математические расширения (он включает все математические расширения в версии «qjsbn», которые полностью обратно совместимы со стандартным Javascript, поддерживает большие целые числа (BigInt), большие числа с плавающей точкой (BigFloat) и режимы bigint и math).
Эта новость вызвала дискуссию на Hacker News, где все разработчики высоко оценили выдающуюся работу Белларда и Гордона над этим проектом. Они отметили, что движок обладает параметрами времени компиляции либо для NaN-бокса, либо для традиционного представления тегированных объединяемых объектов.