Moteur JavaScript - JavaScript engine
Un moteur JavaScript est un programme informatique qui exécute du code JavaScript . Les premiers moteurs JavaScript étaient de simples interpréteurs , mais tous les moteurs modernes pertinents utilisent la compilation juste à temps pour de meilleures performances.
Les moteurs JavaScript sont généralement développés par les fournisseurs de navigateurs Web , et tous les principaux navigateurs en ont un. Dans un navigateur, le moteur JavaScript s'exécute de concert avec le moteur de rendu et peut manipuler des éléments du Document Object Model .
L'utilisation des moteurs JavaScript ne se limite pas aux navigateurs. Par exemple, le moteur V8 est un composant central des systèmes d'exécution Node.js et Deno (programmes qui exécutent le code source JS).
Étant donné que ECMAScript est la spécification standardisée de JavaScript, le moteur ECMAScript est un autre nom pour ces moteurs. Avec l'avènement de WebAssembly , certains moteurs peuvent également exécuter ce code dans le même bac à sable que le code JavaScript normal.
Histoire
Le premier moteur JavaScript a été créé par Brendan Eich en 1995 pour le navigateur Web Netscape Navigator . C'était un interprète rudimentaire pour la langue naissante inventée par Eich. (Cela a évolué vers le moteur SpiderMonkey , toujours utilisé par le navigateur Firefox .)
Le premier moteur JavaScript moderne était V8 , créé par Google pour son navigateur Chrome . Le V8 a fait ses débuts dans le cadre de Chrome en 2008, et ses performances étaient bien meilleures que celles de n'importe quel moteur précédent. L'innovation clé était la compilation juste à temps , qui peut considérablement améliorer les temps d'exécution.
D'autres fournisseurs de navigateurs devaient remanier leurs interprètes pour être compétitifs. Apple a développé le moteur Nitro pour son navigateur Safari , qui avait des performances 30% meilleures que son prédécesseur. Mozilla a utilisé des portions de Nitro pour améliorer son propre moteur SpiderMonkey.
Depuis 2017, ces moteurs ont ajouté la prise en charge de WebAssembly . Cela permet l'utilisation d' exécutables précompilés pour les parties critiques des scripts de page.
Moteurs notables
- V8 de Google est le moteur JavaScript le plus utilisé. Google Chrome et les nombreux autres navigateurs basés sur Chromium l' utilisent, tout comme les applications construites avec CEF , Electron ou tout autre framework qui intègre Chromium. D'autres utilisations incluent les systèmes d'exécution Node.js et Deno .
- SpiderMonkey est développé par Mozilla pour une utilisation dans Firefox et ses forks . Le shell GNOME l' utilise pour la prise en charge des extensions.
- JavaScriptCore est le moteur d' Apple pour son navigateur Safari . D'autres navigateurs basés sur WebKit l' utilisent également. KJS de KDE a été le point de départ de son développement.
- Chakra est le moteur du navigateur Internet Explorer . Il a également été créé par Microsoft pour le navigateur Edge d' origine , mais Edge a ensuite été reconstruit en tant que navigateur basé sur Chromium et utilise donc désormais V8.