Phasis ориентируется на актуальную спецификацию ECMAScript (ES2024+) и отслеживает предложения TC39 на стадии 3 и выше. На этой странице представлен удобный для чтения перечень того, что уже реализовано.
Язык
Возможность
Статус
Лексические объявления (let, const) с TDZ
✅
Блочная, функциональная и модульная области видимости
✅
Стрелочные функции (с лексическим this)
✅
Параметры по умолчанию, остаточные параметры, spread
✅
Деструктуризация (массивов, объектов, вложенная, значения по умолчанию, rest)
✅
Шаблонные литералы и помеченные шаблоны
✅
Вычисляемые имена свойств
✅
Сокращённая запись свойств и методов
✅
Классы — конструкторы, методы, геттеры/сеттеры, статические элементы
✅
Поля классов (публичные, приватные, статические)
✅
Приватные методы и аксессоры
✅
super в методах и конструкторах
✅
Декораторы (стадия 3)
✅
Статические блоки инициализации
✅
Опциональная цепочка (?.), оператор объединения с null (??)
Помимо чистого ECMAScript, Phasis поставляет несколько уровней наборов Web API, которые реальные библиотеки JS проверяют заранее. Полный охват и соответствие по областям см. в разделе API веб-платформы.
¹ Исключены разрешённые подпроверки в тестах сжатия: случаи brotli, которым нужен ext-brotli, и случаи, где передаются данные на основе SharedArrayBuffer (EXPECTED_FAILURES в tests/Wpt/WptTest.php).
Все остальные импортированные Web Platform Tests проходят — см. разбор соответствия в разделе API веб-платформы.
Что ещё не реализовано
Семантика SharedArrayBuffer для рабочих потоков за пределами одного агента — атомарное уведомление между потоками ОС требует pcntl и не входит в планы. Атомарные операции в одном агенте работают.
Intl.Segmenter с графемными кластерами, для которых требуется ICU 76+ — зависит от версии расширения intl у хоста PHP.
Версии
Phasis придерживается семвер-версионирования. Линейка версий отслеживает черновики спецификации ECMAScript:
Версия Phasis
Целевая спецификация
Предложения стадии 3
0.x
ES2024
декораторы, Temporal, явное управление ресурсами, вспомогательные средства для итераторов, методы для множеств
Выпуск версии 1.0 зависит от реализации всех предложений стадии 4 в черновике ES2025 и стабильной семантики обработки очереди Promise.