Phasis tiene como objetivo la especificación actual de ECMAScript (ES2024+) y sigue las propuestas de TC39 en la fase 3 o superior. Esta página es el índice legible de lo que realmente incluye.
Lenguaje
Característica
Estado
Declaraciones léxicas (let, const) con TDZ
✅
Ámbito de bloque, de función y de módulo
✅
Funciones flecha (con this léxico)
✅
Parámetros predeterminados, parámetros rest y expansión
✅
Desestructuración (de matrices, objetos, anidada, con valores predeterminados y rest)
✅
Literales de plantilla y plantillas etiquetadas
✅
Nombres de propiedades calculados
✅
Propiedades y métodos abreviados
✅
Clases: constructores, métodos, getters/setters y estáticos
✅
Campos de clase (públicos, privados y estáticos)
✅
Métodos y accesores privados
✅
super en métodos y constructores
✅
Decoradores (fase 3)
✅
Bloques de inicialización estáticos
✅
Encadenamiento opcional (?.), fusión con nulos (??)
✅
Operadores de asignación lógica (&&=, ||=, ??=)
✅
Separadores numéricos (1_000_000)
✅
Literales BigInt (123n) y operadores
✅
Funciones asíncronas, generadores asíncronos y await de nivel superior
✅
Generadores (síncronos y asíncronos)
✅
for…of, for…in, for await…of
✅
Iteradores e iterables (Symbol.iterator)
✅
Primitivos Symbol y símbolos conocidos
✅
Módulos ES (import / export, import() dinámico)
✅
import.meta
✅
import attributes (fase 3)
✅
Modo estricto y comportamientos heredados del Anexo B
✅
Expresiones regulares (/u, /v, /d, grupos con nombre y búsqueda hacia atrás)
✅
Inserción automática de punto y coma (ASI)
✅
Gramática hashbang (#!/usr/bin/env phasis)
✅
Llamadas de cola apropiadas en modo estricto (ES2015, exigidas por la especificación)
Además del ECMAScript puro, Phasis incluye varios paquetes escalonados de API web que las bibliotecas JS del mundo real verifican de antemano. Consulta API web para ver toda la superficie y la conformidad por área.
¹ Se excluyen las subpruebas permitidas en los casos de prueba de compresión: los casos de brotli, que requieren ext-brotli, y los casos que reciben una entrada respaldada por SharedArrayBuffer (EXPECTED_FAILURES en tests/Wpt/WptTest.php).
Todas las demás Web Platform Tests importadas pasan; consulta API web para ver el desglose de conformidad.
Lo que aún no está implementado
Semántica de SharedArrayBuffer en workers más allá de un único agente: la notificación atómica entre varios hilos reales del sistema operativo requiere pcntl y no está prevista. Los átomos de un solo agente funcionan.
Intl.Segmenter con grupos de grafemas que requieren ICU 76+: depende de la versión de la extensión intl de PHP del sistema anfitrión.
Versionado
Phasis sigue el versionado semántico. La línea de versiones sigue los borradores de la especificación ECMAScript:
Versión de Phasis
Objetivo de la especificación
Propuestas Stage 3
0.x
ES2024
decoradores, Temporal, gestión explícita de recursos, helpers de iteradores, métodos de conjuntos
La versión 1.0 depende de que se implementen todas las propuestas Stage 4 del borrador ES2025 y de que la semántica de vaciado de Promise sea estable.