Открытый JavaScript-движок на базе JVM от Oracle

Компанией Oracle (а точнее, лидерами групп Multi-language и HotSpot) был представлен открытый проект Nashorn, который предлагается для развития в рамках OpenJDK. Основной задачей данного проекта выступает создание «легкого» JavaScript-движка с высокой производительностью, способного работать поверх JVM (виртуальной машины Java). В OpenJDK подразумевается использование Nashorn в качестве самостоятельного движка JavaScript, способного к выполнению отдельных JavaScript-приложений, а также в роли системы скриптинга встраиваемого типа, которая бы тесно интегрировалась с Java и была бы доступна для обращения из соответствующих Java-программ посредством специального API.

Разработка Nashorn будет осуществляться при задействовании новых механизмов JVM (API MethodHandles, InvokeDynamic). За счет этого в динамических языках программирования, которые будут работать поверх JVM, будет увеличена производительность реализаций. Исходный код JavaScript предполагается использовать для генерации промежуточного представления Abstract Syntax Trees, которое в свою очередь будет служить основой для формирования с помощью специального компилятора байткода для выполнения под JVM.

Результатом развития проекта ожидается достижение полной совместимости Nashorn и спецификаций ECMA-262 и ECMAScript 5.1. Следует отметить, что в Oracle уже собран рабочий прототип такого JavaScript-движка, успешно проходящий проверки тестового комплекта ECMAScript test262. Планируется открытие кода указанных наработок на условиях лицензии GPLv2 и его передача сообществу OpenJDK, в случае одобрения последним принятия проекта (открыто соответствующее голосование, которое будет длиться до 6 декабря). Когда код будет передан в руки OpenJDK, ожидается начало работ по его доработке в плане оптимизации производительности, а также доведения до состояния, пригодного для использования конечным пользователем.