Motor de JavaScript - JavaScript engine
Un motor JavaScript es un programa informático que ejecuta código JavaScript . Los primeros motores de JavaScript eran meros intérpretes , pero todos los motores modernos relevantes utilizan la compilación justo a tiempo para mejorar el rendimiento.
Los motores de JavaScript suelen ser desarrollados por proveedores de navegadores web , y todos los navegadores principales tienen uno. En un navegador, el motor de JavaScript se ejecuta en conjunto con el motor de renderizado y puede manipular elementos del Modelo de objetos de documento .
El uso de motores JavaScript no se limita a los navegadores. Por ejemplo, el motor V8 es un componente central de los sistemas de tiempo de ejecución Node.js y Deno (programas que ejecutan código fuente JS).
Dado que ECMAScript es la especificación estandarizada de JavaScript, el motor ECMAScript es otro nombre para estos motores. Con la llegada de WebAssembly , algunos motores también pueden ejecutar este código en el mismo espacio aislado que el código JavaScript normal.
Historia
El primer motor de JavaScript fue creado por Brendan Eich en 1995 para el navegador web Netscape Navigator . Fue un intérprete rudimentario del idioma naciente que inventó Eich. (Esto se convirtió en el motor SpiderMonkey , todavía utilizado por el navegador Firefox ).
El primer motor JavaScript moderno fue V8 , creado por Google para su navegador Chrome . V8 debutó como parte de Chrome en 2008 y su rendimiento fue mucho mejor que el de cualquier motor anterior. La innovación clave fue la compilación justo a tiempo , que puede mejorar significativamente los tiempos de ejecución.
Otros proveedores de navegadores necesitaban revisar sus intérpretes para competir. Apple desarrolló el motor Nitro para su navegador Safari , que tuvo un rendimiento un 30% mejor que su predecesor. Mozilla aprovechó partes de Nitro para mejorar su propio motor SpiderMonkey.
Desde 2017, estos motores han agregado soporte para WebAssembly . Esto permite el uso de ejecutables precompilados para partes de secuencias de comandos de página críticas para el rendimiento.
Motores notables
- V8 de Google es el motor JavaScript más utilizado. Google Chrome y muchos otros navegadores basados en Chromium lo utilizan, al igual que las aplicaciones creadas con CEF , Electron o cualquier otro marco que incorpore Chromium. Otros usos incluyen los sistemas de tiempo de ejecución Node.js y Deno .
- SpiderMonkey está desarrollado por Mozilla para su uso en Firefox y sus bifurcaciones . El GNOME Shell utiliza para el apoyo de extensión.
- JavaScriptCore es el motor de Apple para su navegador Safari . Otros navegadores basados en WebKit también lo utilizan. KJS de KDE fue el punto de partida para su desarrollo.
- Chakra es el motor del navegador Internet Explorer . Microsoft también lo bifurcó para el navegador Edge original , pero Edge se reconstruyó más tarde como un navegador basado en Chromium y, por lo tanto, ahora usa V8.