Comment faire pour détecter les modules ES6

Je souhaite exporter un module à l'aide de la syntaxe ES6 uniquement s'il est pris en charge dans le temps d'exécution actuel. L'objectif est de développer une bibliothèque prenant en charge différents systèmes de gestion de modules.

Étant donné que l' export est un mot-clé, quelque chose comme lanceront une erreur de syntaxe:

 typeof export 

La révision 27 de la spécification avait une API Reflect.Loader qui pourrait être utilisée pour la réflexion du module.

Bien qu'il ne s'agisse pas d'une détection de fonctionnalité directe pour le mot-clé d'exportation en soi, il aurait pu être possible de charger un module qui utilise des mots-clés d'exportation à partir d'un data-uri, puis de vérifier si il crée des erreurs d'analyse ou non.

Mais il a été supprimé avec la révision 28, avec l'entrée changelog suivante:

Le pipeline du chargeur supprimé et Reflect.Loader API (la fonctionnalité étant transférée à une spécification distincte)


Ainsi, dans la mesure où je peux le dire, la spécification ne semble pas fournir de détection de fonctionnalité au moment de l'écriture.

À l'avenir, il sera possible avec Reflect.Loader ou ses remplacements.

Edit: La spécification du chargeur semble être développé par le whatwg, mais il n'est pas encore dans un état à partir duquel nous pourrions dériver la détection des fonctionnalités.