Publié le 2 septembre : article de WebKit sur la correction de l'attente de niveau supérieur dans Safari. Le message vaut votre temps même si vous n'avez jamais rencontré le bug, car le correctif lui-même est l'histoire.
La forme du correctif
- Code du module iOS livré dans une réécriture : les notes de Safari 27.0 décrivent une réimplémentation complète et conforme aux normes du chargeur de module ES, construit en C++ natif et conforme directement aux algorithmes de chargement de la spécification.
- La réécriture a remplacé une implémentation basée sur une proposition de 2016 entièrement antérieure à l'attente de niveau supérieur, ce qui explique comment la conception héritée restreint discrètement ce qu'une fonctionnalité peut faire des années plus tard.
- La validation n'a pas été livrée sur vibes : les notes nomment test262, Web Platform Tests et des cas de test supplémentaires comme barre.
L'attente de niveau supérieur permet à un module de faire une pause sur une promesse avant que ses exportations ne soient réglées. Les équipes multi-navigateurs connaissaient Safari comme le moteur sur lequel ce modèle mentait parfois. La leçon qui se propage partout : des bugs comme celui-ci ne sont jamais corrigés sous le message d'erreur qu'ils provoquent ; ils fixent une couche vers le bas, où le chargeur décide de l'ordre. Lisez le message source pour les détails véritablement captivants.
