Motor JavaScript - JavaScript engine
Um motor JavaScript é um programa de computador que executa código JavaScript . Os primeiros motores JavaScript eram meros intérpretes , mas todos os motores modernos relevantes usam compilação just-in-time para melhorar o desempenho.
Os mecanismos JavaScript são normalmente desenvolvidos por fornecedores de navegadores da web , e todos os principais navegadores possuem um. Em um navegador, o mecanismo JavaScript é executado em conjunto com o mecanismo de renderização e pode manipular elementos do Document Object Model .
O uso de motores JavaScript não se limita aos navegadores. Por exemplo, o mecanismo V8 é um componente central dos sistemas de tempo de execução Node.js e Deno (programas que executam código-fonte JS).
Como ECMAScript é a especificação padronizada de JavaScript, o mecanismo ECMAScript é outro nome para esses mecanismos. Com o advento da WebAssembly , alguns motores também pode executar este código no mesmo sandbox como código JavaScript regular.
História
O primeiro motor de JavaScript foi criada por Brendan Eich em 1995 para o Netscape Navigator navegador web . Foi um intérprete rudimentar para a linguagem nascente que Eich inventou. (Isso evoluiu para o mecanismo SpiderMonkey , ainda usado pelo navegador Firefox .)
O primeiro motor JavaScript moderno foi o V8 , criado pelo Google para seu navegador Chrome . O V8 estreou como parte do Chrome em 2008, e seu desempenho era muito melhor do que qualquer motor anterior. A principal inovação foi a compilação just-in-time , que pode melhorar significativamente os tempos de execução.
Outros fornecedores de navegadores precisaram revisar seus intérpretes para competir. A Apple desenvolveu o motor Nitro para seu navegador Safari , que teve um desempenho 30% melhor do que seu antecessor. A Mozilla aproveitou partes do Nitro para melhorar seu próprio mecanismo SpiderMonkey.
Desde 2017, esses mecanismos adicionaram suporte para WebAssembly . Isso permite o uso de executáveis pré-compilados para partes críticas de desempenho de scripts de página.
Motores notáveis
- O V8 do Google é o mecanismo de JavaScript mais usado. O Google Chrome e muitos outros navegadores baseados em Chromium o usam, assim como os aplicativos desenvolvidos com CEF , Electron ou qualquer outra estrutura que incorpore Chromium. Outros usos incluem os sistemas de tempo de execução Node.js e Deno .
- SpiderMonkey é desenvolvido pela Mozilla para uso no Firefox e seus garfos . O GNOME Shell o usa para suporte de extensão.
- JavaScriptCore é o mecanismo da Apple para o navegador Safari . Outros navegadores baseados em WebKit também o usam. O KJS do KDE foi o ponto de partida para o seu desenvolvimento.
- Chakra é o motor do navegador Internet Explorer . Ele também foi bifurcado pela Microsoft para o navegador Edge original , mas o Edge foi reconstruído posteriormente como um navegador baseado em Chromium e, portanto, agora usa o V8.