WebIDL parser and checker
On pourrait utiliser WebIDL afin de s’assurer:
- que l’ensemble des méthodes du standard DOM sont implémentées
- que la signature de ces méthodes est conforme
Tous les navigateurs modernes se basent sur WebIDL et plusieurs parsers existent déjà, souvent en Python.
L’idée serait pour chaque fichier WebIDL présent de:
- parser le fichier
- vérifier si une implémentation zig existe et si toutes les propriétés (getter/setter) et méthodes sont présentes et ont la signature conforme au standard
- si ce n’est pas le cas générer une erreur avec les signatures attendues
Ce parsing pourrait se faire comptime.
Je le vois à la fois comme un outil de conformité et comme un outil de développement des Web APIs puisque pour chaque nouvel API le dev workflow pourrait commencer par ajouter le fichier WebIDL correspondant et ainsi générer la structure de l’implémentation (toutes les fonctions et leurs signatures).
WebIDL can also serve as an interface between the browser and JavaScript engines if you want to change them in the future. In other words, the code depends on the formal interface, not on V8. As far as I known Servo chose exactly this way: https://servo.org/blog/2024/04/15/spidermonkey/