Publicado el 2 de septiembre: artículo de WebKit sobre cómo solucionar la espera de nivel superior en Safari. La publicación vale la pena, incluso si nunca encuentras el error, porque la solución en sí es la historia.
La forma de la solución.
- El código del módulo iOS se envió dentro de una reescritura: las notas de Safari 27.0 describen una reimplementación completa y compatible con los estándares del cargador de módulos ES, integrado en C++ nativo y que se ajusta directamente a los algoritmos de carga de las especificaciones.
- La reescritura reemplazó una implementación basada en una propuesta de 2016 que era anterior a la espera de nivel superior por completo, que es la forma en que el diseño heredado limita silenciosamente lo que una característica puede hacer años después.
- La validación no se envió con vibraciones: las notas nombran test262, Pruebas de plataforma web y casos de prueba adicionales como barra.
La espera de nivel superior permite que un módulo haga una pausa en una promesa antes de que se establezcan sus exportaciones. Los equipos de varios navegadores conocían Safari como el motor donde ocasionalmente se encontraba ese patrón. La lección que se lleva a todas partes: errores como este nunca se solucionan bajo el mensaje de error que causan; fijan una capa hacia abajo, donde el cargador decide el orden. Lea la publicación fuente para conocer los detalles realmente fascinantes.
