ArticleslgStudy

science

List of JavaScript engines

List of JavaScript engines is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand List of JavaScript engines rather than just read about it. In short: The first JavaScript engines were interpreters of the source code, but modern engines use just-in-time compilation to improve performance. JavaScript engines are typically developed by web browser vendors, and every major browser includes one.

Key takeaways

  • List of JavaScript engines belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect List of JavaScript engines to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of List of JavaScript engines from memory before moving on to harder problems.

Reference excerpt

The first JavaScript engines were interpreters of the source code, but modern engines use just-in-time compilation to improve performance. JavaScript engines are typically developed by web browser vendors, and every major browser includes one. In a browser, the JavaScript engine runs in concert with the rendering engine via the Document Object Model and Web IDL bindings. However, the use of JavaScript engines is not limited to browsers; For example, the V8 engine is a core component of the Node.js runtime system. They are also called ECMAScript engines, after the official name of the specification. With the advent of WebAssembly, some engines can also execute this code in the same sandbox as regular JavaScript code.

History The first JavaScript engine was created by Brendan Eich in 1995 for the Netscape Navigator web browser. It was a rudimentary interpreter for the nascent language Eich invented. (This evolved into the SpiderMonkey engine, still used by the Firefox browser.) Google debuted its Chrome browser in 2008, introducing the V8 JavaScript engine that was at the time much faster than its competition. This sparked a race between browser vendors to deliver ever-faster JavaScript engines. The key innovations around this era were switching from basic tree-walking interpreters to stack- and register-based bytecode VM interpreters, just-in-time compilation (JIT), inline caching (hidden classes) and generational GC. Apple released the JIT-enabled Nitro engine in June 2008 for its Safari browser, which had 30% better performance than its predecessor. Mozilla followed suit in August 2008 with TraceMonkey, the first JIT compiler for SpiderMonkey engine, released in Firefox 3.1. Opera joined the performance race with their register-bytecode based and JIT-enabled Carakan engine, 2009 and released in April 2010. Microsoft's first JIT-enabled Chakra engine, in development since 2008, debuted as part of Internet Explorer 9 in 2011. Its major rewrite appeared in Microsoft Edge Legacy in 2015 and open-sourced as ChakraCore in 2016. Further performance gains in major JavaScript engines were later achieved with the introduction of multi-tiered JIT architectures. Progressively advanced JIT compilers are used to optimize hotspots in user code, with each next tier delivering ever more performant native code at the cost of slower compile time. Chrome was the first to implement it in V8 in 2010 with the introduction of Crankshaft, a 2-tiered JIT compiler. By 2023, architecture of V8 evolved into 4 tiers: Ignition – register-based bytecode interpreter, Sparkplug – a fast non-optimizing JIT compiler, Maglev and TurboFan – slower optimizing JIT compilers. JavaScriptCore today has a similar 4-tier architecture, while Firefox's SpiderMonkey and ChakraCore have 3 tiers (interpreter and 2-tiered JIT). This ever-increasing complexity of JIT compilers, however, has been criticized as a rich source of browser bugs, prompting some browser vendors to disable JIT altogether, such as Microsoft Edge's "Super Duper Secure Mode", introduced in 2021 and reportedly with minor performance impact for daily browsing. V8's influence expanded beyond browsers with the release of Node.js in 2009 and its package manager npm in 2010. As their popularity exploded, V8 also became the engine powering vast amounts of server-side JavaScript code. In 2013, Electron framework appeared that let developers create desktop apps with web technologies as well, using Chromium with V8 and Node.js under the hood. Taking advantage of performance improvements in JavaScript engines, Emscripten C/C++-to-JavaScript compiler appeared in 2010-2011 and allowed running existing complex C/C++ code, such as game engines and even whole virtual machines, directly in the browser. asm.js, a highly optimizable low-level subset of JavaScript for such compilers emerged in 2013, with Firefox being the first to implement specific optimizations for it with OdinMonkey module. Eventually asm.js and NaCl (a competing Google's technology) evolved into WebAssembly standard in 2017, with all major engines adding support for it. The six-year gap between ECMAScript 5 (2009) and ES6 (2015) marked a major inflection point for JavaScript engine development. Whereas ES5 was a relatively compact language with straightforward basic implementation, ES6 introduced foundations of modern JavaScript, with substantially increased complexity, as well as an annual release cycle for new specification versions. This put the focus not only on performance optimization, but also on keeping pace with the rapidly evolving standards (of both ECMAScript and wider web ecosystem) and led to a consolidation around engines that had the resources to do it. Many smaller projects did not end up fully implementing ES6 spec, and Opera and Microsoft both ceased developing their engines and adopted V8 in 2013 and 2021. Nashorn engine was dropped from OpenJDK over a similar concern about ECMAScript's rapid development.

List

Historical engines These engines have been discontinued and are mostly interesting for the historical perspective. Some may still be in use today for legacy purposes (especially Microsoft's old engines that continue to ship with Windows).

See also Comparison of browser engines Comparison of web browsers

References

Worked examples

Example 1 — a first encounter with List of JavaScript engines

Start with the simplest possible case. Write down what List of JavaScript engines claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to List of JavaScript engines before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about List of JavaScript engines ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of List of JavaScript engines

In research
List of JavaScript engines appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses List of JavaScript engines in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
List of JavaScript engines is common in secondary-school and first-year university syllabi. It links to neighbouring topics JavaScript engines, so understanding it makes those chapters shorter.
In everyday life
Look for List of JavaScript engines outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “List of JavaScript engines” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study List of JavaScript engines in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what List of JavaScript engines means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain List of JavaScript engines out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is List of JavaScript engines in simple terms?

The first JavaScript engines were interpreters of the source code, but modern engines use just-in-time compilation to improve performance. JavaScript engines are typically developed by web browser vendors, and every major browser includes one.

Why does List of JavaScript engines matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study List of JavaScript engines?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on List of JavaScript engines.

Tags

  • JavaScript engines

Keep exploring