ECMAScript, la spécification standard sous-jacente à JavaScript, est disponible dans une dernière version qui a été approuvée par l'organisme de normalisation Intermarial ECMA fin juin 2018. Parmi les changements, on retiendra les itérateurs asynchrones qui ajoutent la prise en charge syntaxique pour l'itération asynchrone en utilisant les protocoles AsyncIterable et AsyncIterator. Cette fonctionnalité permet d'obtenir une instruction d'attente d'itération tout en ajoutant une syntaxe pour créer des fonctions et des méthodes de générateur asynchrone.

L'indicateur « s » (dotAll) pour les expressions régulières est aussi disponible pour leur fournir un comportement cohérent. Cette fonctionnalité est destinée à répondre aux limitations dans lesquelles le dot (.) dans les expressions régulières ne correspond pas aux caractères de fin de ligne. Le drapeau « s » change cela et fonctionnera sur la base d'un opt-in, de façon à ce que les modèles d'expressions régulières existants ne soient pas affectés.

Une liberté syntaxique améliorée dans les révisions littérales

Regexp (expression régulière) apporte maintenant aux développeurs un meilleur moyen d'accéder aux propriétés de caractères Unicode, sachant que les propriété de forme de « \ p {...} et \ P {...} » seront ajoutées. Regexp s'affranchit par ailleurs des assertions, corrigeant une lacune de largeur nulle. Avec des assertions « look-behind », les développeurs peuvent aussi s'assurer qu'un modèle est - ou n'est pas -précédé par un autre comme par exemple, faire correspondre un montant en dollar sans capturer le signe dollar.

Les propriétés « rest/spread » bénéficient d'une amélioration syntaxique mineure, la fonction prototype.finally () permet de ne plus laisser de trace après exécution d'une ressource. Regexp améliorer la gestion des groupes de capture en améliorant leur identification, la facilité à les trouver et en rendant l'expression régulière plus facile à comprendre. Auparavant, les groupes de capture étaient accessibles par numéros. Enfin, les révisions littérales de modèle, offrant des littéraux de modèle marqués, ont augmenté la liberté syntaxique.

Une fonctionnalité attendue était la mise à jour de Function.prototype.toString, mais été supprimée à cause de problèmes persistent. La méthode toString () aurait renvoyé une chaîne représentant le code source d'une fonction. La documentation de la spécification d'ECMAScript 2018 est disponible sur le répertoire GitHub à cette adresse.