Firefox 22 : un moteur JavaScript de rupture

Firefox 22 : un moteur JavaScript de rupture Compiler le code JavaScript à la volée pour se rapprocher de la performance d'une exécution d'un client natif. Tel le projet de la fondation Mozilla avec le projet OdinMonkey.

Avec Firefox 18, Mozilla avait déjà cherché à faire passer une nouvelle étape à son moteur JavaScript. Avant de convertir le code en langage machine, SpiderMonkey introduisait en effet une phase intermédiaire, appliquant une batterie d'algorithmes pour optimiser cette traduction finale. En vue de l'arrivée de Firefox 22 en juin prochain, la fondation Open Source entend améliorer encore ce processus d'optimisation. Au travers d'un nouveau projet (OdinMonkey), elle travaille sur asm.js : un sous-ensemble de JavaScript, visant à obtenir un code applicatif pré-optimisé, et ainsi "tendre vers des performances proches d'un client natif".

"Cet exploit est réalisé grâce à quelques astuces syntaxiques qui permettent de donner des indices de typages des variables, des restrictions dans les fonctionnalités les plus coûteuses, ainsi que l'utilisation d'un buffer (typeArray) comme heap dans le programme pour éviter tout problème de garbage collector", analyse le site Linuxfr.org (lire l'analyse). L'objectif pour Mozilla est assez clairement de prendre l'avantage sur le front des applications web de jeu, la fondation ne s'en cache pas d'ailleurs.

Force est de constater, enfin, qu'asm.js est aussi dessiné pour Emscripten - qui, rappelons le, est conçu pour compiler du code C/C++ en JavaScript. Ce qui en fait d'OdinMonkey un concurrent potentiel du Native Client de Google. Prenant en charge les configurations x86/x64 et les architectures ARM, OdinMonkey ciblera d'emblée les terminaux Windows, Mac et Linux. Ce projet de Mozilla est d'ores et déjà intégré dans la build Firefox Nightly.

 Source