Puneet Varma (Editor)

V8 (JavaScript engine)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
The Chromium Project

Development status
  
Active

Repository
  
github.com/v8/v8

Written in
  
C++, JavaScript

Initial release
  
September 2, 2008; 8 years ago (2008-09-02)

Stable release
  
5.7 / February 6, 2017; 55 days ago (2017-02-06)

The V8 JavaScript Engine is an open source JavaScript engine developed by The Chromium Project for the Google Chrome web browser. It has been used in many other projects, such as Couchbase, MongoDB and Node.js that are used server side. As of 2012, the head programmer is Lars Bak. The first version of the V8 engine was released at the same time as the first version of Chrome, September 2, 2008.

Contents

V8 compiles JavaScript directly to native machine code before executing it, instead of more traditional techniques such as interpreting bytecode or compiling the whole program to machine code and executing it from a filesystem. The compiled code is additionally optimized (and re-optimized) dynamically at runtime, based on heuristics of the code's execution profile. Optimization techniques used include inlining, elision of expensive runtime properties, and inline caching, among many others.

V8 can compile to IA-32, x86-64, ARM, or MIPS ISAs; it has also been ported to PowerPC and IBM s390 for use in servers.

History

The garbage collector of V8 is a generational incremental collector. The V8 assembler is based on the Strongtalk assembler. On 7 December 2010, a new compiling infrastructure named Crankshaft was released, with speed improvements.

Since version 41 of Chrome in 2015, project TurboFan has been added to enable more speed, e.g. for asm.js.

In 2016, the Ignition interpreter was added to V8 with the design goal of reducing the memory usage on small memory Android phones in comparison with TurboFan and Crankshaft.

Usage

V8 is intended to be used both in a browser (notably in Chrome and Chromium browsers) and as a standalone high-performance engine that can be integrated into independent projects, for example server-side JavaScript in Node.js, CouchDB, or client side JavaScript in .NET/Mono using V8.NET.

V8 is used in the following applications:

  • Google Chrome and Chromium web browsers
  • Opera web browser
  • Vivaldi web browser
  • Couchbase database
  • Node.js runtime environment
  • Electron software framework, powering applications such as the Atom and Visual Studio Code text editors
  • References

    V8 (JavaScript engine) Wikipedia