<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=V8_%28JavaScript_engine%29</id>
	<title>V8 (JavaScript engine) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=V8_%28JavaScript_engine%29"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=V8_(JavaScript_engine)&amp;action=history"/>
	<updated>2026-10-25T23:03:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=V8_(JavaScript_engine)&amp;diff=7263559&amp;oldid=prev</id>
		<title>imported&gt;Guy Harris: Fix capitalization.  (Not sure anybody would see &quot;JavaScript engine&quot; and think you could drop it into a car or boat, but....)</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=V8_(JavaScript_engine)&amp;diff=7263559&amp;oldid=prev"/>
		<updated>2025-06-27T00:36:51Z</updated>

		<summary type="html">&lt;p&gt;Fix capitalization.  (Not sure anybody would see &amp;quot;JavaScript engine&amp;quot; and think you could drop it into a car or boat, but....)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|JavaScript and WebAssembly engine}}&lt;br /&gt;
{{For|the engine used in vehicles|V8 engine}}&lt;br /&gt;
{{Use dmy dates|date=March 2024}}&lt;br /&gt;
{{Infobox software&lt;br /&gt;
| name                   = V8&lt;br /&gt;
| logo                   = V8 JavaScript engine logo 2.svg&lt;br /&gt;
| logo size              = 64px&lt;br /&gt;
| screenshot             =&lt;br /&gt;
| caption                =&lt;br /&gt;
| developer              = [[Google]]&amp;lt;ref name=&amp;quot;v8 doc&amp;quot;&amp;gt;{{cite web |title=Documentation · V8 |url=https://v8.dev/docs |publisher=Google |access-date=3 March 2024}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| released               = {{start date and age|2008|9|2|df=y}}&lt;br /&gt;
| latest release version = {{wikidata|property|edit|reference|P548=Q2804309|P348}}&lt;br /&gt;
| latest release date    = {{start date and age|{{wikidata|qualifier|single|P548=Q2804309|P348|P577}}}}&lt;br /&gt;
| programming language   = [[C++]]&amp;lt;ref name=&amp;quot;v8 doc&amp;quot;/&amp;gt;&lt;br /&gt;
| platform               = [[IA-32]], [[x86-64]], [[ARM architecture|32-bit ARM]], [[AArch64]], [[MIPS architecture|32-bit MIPS]], [[MIPS64]], [[PowerPC]], [[IBM ESA/390]], [[z/Architecture]]&lt;br /&gt;
| genre                  = [[JavaScript engine|JavaScript]] and [[WebAssembly]] engine&lt;br /&gt;
| license                = [[BSD licences|BSD]]&amp;lt;ref&amp;gt;{{cite web|url=https://github.com/v8/v8/blob/master/LICENSE.v8|title=v8/LICENSE.v8 at master|publisher=Github}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;V8&amp;#039;&amp;#039;&amp;#039; is a [[JavaScript engine|JavaScript]] and [[WebAssembly]] engine developed by [[Google]] for its [[Google Chrome|Chrome]] [[web browser|browser]].&amp;lt;ref name=&amp;quot;v8 doc&amp;quot;/&amp;gt;&amp;lt;ref name=&amp;quot;comic&amp;quot;&amp;gt;{{cite web |last=Lenssen |first=Philipp |date=1 September 2008 |title=Google on Google Chrome - comic book |url=http://blogoscoped.com/google-chrome/ |url-status=live |access-date=17 August 2010 |work=Google Blogoscoped |language=en-US}}&amp;lt;/ref&amp;gt; V8 is [[free and open-source software]] that is part of the [[Chromium (web browser)|Chromium]] project and also used separately in non-browser contexts, notably the [[Node.js]] [[runtime system]].&amp;lt;ref name=&amp;quot;v8 doc&amp;quot;/&amp;gt; Other server-side JavaScript runtimes use alternative engines, such as [[Bun (software)|Bun]] (which uses [[JavaScriptCore]]) and Hermes (used by [[React Native]]).&lt;br /&gt;
&lt;br /&gt;
==History==&lt;br /&gt;
[[Google]] created V8 for its [[Google Chrome|Chrome]] browser, and both were first released in 2008.&amp;lt;ref name=&amp;quot;comic&amp;quot;/&amp;gt; The lead developer of V8 was [[Lars Bak (computer programmer)|Lars Bak]], and it was named after the powerful [[V8 engine|car engine]].&amp;lt;ref&amp;gt;{{cite web |title=V8: an open source JavaScript engine |url=https://www.youtube.com/watch?v=hWhMKalEicY |website=YouTube | date=15 September 2008 |publisher=Google |access-date=15 March 2024}}&amp;lt;/ref&amp;gt; For several years, Chrome was faster than other browsers at executing [[JavaScript]].&amp;lt;ref&amp;gt;{{cite web|url=https://www.pcgameshardware.com/aid,687738/Big-browser-comparison-test-Internet-Explorer-vs-Firefox-Opera-Safari-and-Chrome-Update-Firefox-35-Final/Practice/|title=Big browser comparison test: Internet Explorer vs. Firefox, Opera, Safari and Chrome|work=PC Games Hardware|date=3 July 2009|publisher=Computec Media AG|access-date=June 28, 2010|archive-date=May 2, 2012|archive-url=https://web.archive.org/web/20120502043027/http://www.pcgameshardware.com/aid,687738/Big-browser-comparison-test-Internet-Explorer-vs-Firefox-Opera-Safari-and-Chrome-Update-Firefox-35-Final/Practice/|url-status=dead}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web | url=https://lifehacker.com/lifehacker-speed-tests-safari-4-chrome-2-and-more-5286869 | title=Lifehacker Speed Tests: Safari 4, Chrome 2 | first=Kevin | last=Purdy | work=[[Lifehacker]] | date=June 11, 2009 | access-date=May 8, 2021 | archive-date=April 14, 2021 | archive-url=https://web.archive.org/web/20210414095403/https://lifehacker.com/lifehacker-speed-tests-safari-4-chrome-2-and-more-5286869 | url-status=live }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite magazine |title=Mozilla asks, &amp;#039;Are we fast yet?&amp;#039; |url=https://www.wired.com/2010/09/mozilla-asks-are-we-fast-yet/ |magazine=Wired |access-date=January 18, 2019 |archive-date=June 22, 2018 |archive-url=https://web.archive.org/web/20180622213244/https://www.wired.com/2010/09/mozilla-asks-are-we-fast-yet/ |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The V8 [[assembly language#Assembler|assembler]] is based on the [[Strongtalk]] assembler.&amp;lt;ref&amp;gt;{{cite web|url=https://code.google.com/p/v8/source/browse/trunk/LICENSE |title=V8 JavaScript Engine: License |work=[[Google Code]] |access-date=17 August 2010 |url-status=dead |archive-url=https://web.archive.org/web/20100722105022/http://code.google.com/p/v8/source/browse/trunk/LICENSE |archive-date=July 22, 2010 }}&amp;lt;/ref&amp;gt; On 7 December 2010, a new compiling infrastructure named Crankshaft was released, with speed improvements.&amp;lt;ref&amp;gt;{{cite web |url=https://blog.chromium.org/2010/12/new-crankshaft-for-v8.html |title=A New Crankshaft for V8 |date=7 December 2010 |work=Chromium Blog |access-date=22 April 2011}}&amp;lt;/ref&amp;gt; In version 41 of Chrome in 2015, project TurboFan was added to provide more performance improvements with previously challenging workloads such as [[asm.js]].&amp;lt;ref&amp;gt;{{cite web |url=https://blog.chromium.org/2015/07/revving-up-javascript-performance-with.html |title=Revving up JavaScript performance with TurboFan |date=7 July 2015 |access-date=5 March 2016}}&amp;lt;/ref&amp;gt; Much of V8&amp;#039;s development is strongly inspired by the [[HotSpot (virtual machine)|Java HotSpot Virtual Machine]] developed by [[Sun Microsystems]], with the newer execution pipelines being very similar to those of HotSpot&amp;#039;s.&lt;br /&gt;
&lt;br /&gt;
Support for the new [[WebAssembly]] language began in 2015.&amp;lt;ref&amp;gt;{{cite web |title=Experimental support for WebAssembly in V8 |url=https://v8.dev/blog/webassembly-experimental |website=v8.dev |access-date=12 March 2024}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2016, the Ignition interpreter was added to V8 with the design goal of reducing the [[Memory cell (computing)|memory]] usage on small memory [[Android (operating system)|Android]] phones in comparison with TurboFan and Crankshaft.&amp;lt;ref&amp;gt;{{cite web |url=https://www.youtube.com/watch?v=r5OWCtuKiAk  |archive-url=https://ghostarchive.org/varchive/youtube/20211221/r5OWCtuKiAk |archive-date=2021-12-21 |url-status=live|title=BlinkOn 6 Day 1 Talk 2: Ignition - an interpreter for V8 |website=[[YouTube]] |date=26 June 2016 |access-date=2 September 2016}}{{cbignore}}&amp;lt;/ref&amp;gt; Ignition is a [[Register machine|register based machine]] and shares a similar (albeit not the exact same) design to the templating interpreter utilized by HotSpot.&lt;br /&gt;
&lt;br /&gt;
In 2017, V8 shipped a brand-new [[compiler]] pipeline, consisting of Ignition (the [[Abstract syntax tree interpreter|interpreter]]) and TurboFan (the [[Program optimization|optimizing compiler]]). Starting with V8 version 5.9, Full-codegen (the early baseline compiler) and Crankshaft are no longer used in V8 for JavaScript execution, since the team believed they were no longer able to keep pace with new JavaScript language features and the optimizations those features required.&amp;lt;ref&amp;gt;{{cite web |url=https://v8project.blogspot.com/2017/05/launching-ignition-and-turbofan.html |title=Launching Ignition and TurboFan |date=16 May 2017 |access-date=13 July 2017}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In 2021, a new tiered compilation pipeline was introduced with the release of the SparkPlug compiler, which supplements the existing TurboFan compiler within V8, in a direct parallel to the profiling C1 Compiler used by HotSpot.&lt;br /&gt;
&lt;br /&gt;
In 2023, the Maglev [[Static single-assignment form|SSA]]-based compiler was added, which is 10 times slower than Sparkplug but 10 times faster than TurboFan, bridging the gap between Sparkplug and TurboFan for less frequently run loops that do not get &amp;quot;hot&amp;quot; enough to be optimised by TurboFan, as is the case for most web applications that spend more time interacting with the browser than in JavaScript execution. &amp;lt;ref&amp;gt;{{cite web |url=https://v8.dev/blog/maglev |title=Maglev - V8&amp;#039;s Fastest Optimizing JIT |date=5 December 2023|access-date=26 January 2024}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Design==&lt;br /&gt;
V8 first generates an [[abstract syntax tree]] with its own parser.&amp;lt;ref&amp;gt;{{Cite web|last=Verwaest|first=Toon|date=25 March 2019|title=Blazingly fast parsing, part 1: optimizing the scanner · V8|url=https://v8.dev/blog/scanner|url-status=live|archive-url=https://web.archive.org/web/20210421221018/https://v8.dev/blog/scanner|archive-date=21 April 2021|access-date=1 June 2021|website=v8.dev}}&amp;lt;/ref&amp;gt; Then, Ignition generates [[bytecode]] from this syntax tree using the internal V8 [[bytecode]] format.&amp;lt;ref&amp;gt;{{Cite web|url=https://medium.com/dailyjs/understanding-v8s-bytecode-317d46c94775|title=Understanding V8&amp;#039;s Bytecode|last=Hinkelmann|first=Franziska|date=2017-12-19|website=Medium|language=en|access-date=2019-10-17}}&amp;lt;/ref&amp;gt; TurboFan compiles this bytecode into machine code. In other words, V8 compiles [[ECMAScript]] directly to native [[machine code]] using [[just-in-time compilation]] before executing it.&amp;lt;ref&amp;gt;{{Cite web|title=Firing up the Ignition interpreter · V8|url=https://v8.dev/blog/ignition-interpreter|access-date=2020-09-30|website=v8.dev}}&amp;lt;/ref&amp;gt; The compiled code is additionally optimized (and re-optimized) dynamically at runtime, based on heuristics of the code&amp;#039;s execution profile. Optimization techniques used include [[inlining]], [[Copy elision|elision]] of expensive runtime properties, and [[inline caching]]. The [[garbage collection (computer science)|garbage collector]] is a [[tracing garbage collection#Generational GC (ephemeral GC)|generational]] [[tracing garbage collection#Stop-the-world vs. incremental vs. concurrent|incremental]] collector.&amp;lt;ref&amp;gt;{{cite web |url=https://blog.chromium.org/2011/11/game-changer-for-interactive.html |title=A game changer for interactive performance |website=blog.chromium.org |date=2011-11-21|access-date=2022-02-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Usage==&lt;br /&gt;
V8 can compile to [[x86 architecture|x86]], [[ARM architecture|ARM]] or [[MIPS architecture|MIPS]] [[instruction set architecture]]s in both their [[32-bit computing|32-bit]] and [[64-bit computing|64-bit]] editions; it has additionally been ported to [[PowerPC]],&amp;lt;ref name=&amp;quot;ppc-and-z-support&amp;quot;&amp;gt;{{Cite web|url=https://developer.ibm.com/opentech/2015/06/30/ppc-support-for-google-v8-goes-mainstream/|title=PPC support for Google V8 goes mainstream|date=June 30, 2015|archive-url=https://web.archive.org/web/20150912183958/https://developer.ibm.com/opentech/2015/06/30/ppc-support-for-google-v8-goes-mainstream/|archive-date=September 12, 2015|url-status=dead}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/ibmruntimes/v8ppc|title=GitHub - ibmruntimes/v8ppc: Port of Google V8 javascript engine to PowerPC®.|date=April 21, 2019|via=GitHub}}&amp;lt;/ref&amp;gt; and to [[IBM ESA/390]] and [[z/Architecture]],&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/ibmruntimes/v8z|title=Port of Google V8 JavaScript engine to z/OS. The Linux on Z port is maintained in the community: ibmruntimes/v8z|date=April 2, 2019|via=GitHub}}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;ppc-and-z-support&amp;quot;/&amp;gt; for use in servers.&amp;lt;ref&amp;gt;{{cite web |url=http://v8.googlecode.com/svn/trunk/ChangeLog |title=V8 Changelog v3.8.2 |access-date=23 October 2012 |archive-url=https://web.archive.org/web/20121022062411/http://v8.googlecode.com/svn/trunk/ChangeLog |archive-date=22 October 2012 |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V8 can be used in a browser or integrated into independent projects. V8 is used in the following software:&lt;br /&gt;
* [[Chromium (web browser)|Chromium]]-based [[web browser]]s - [[Google Chrome]], [[Brave (web browser)|Brave]], [[Opera (web browser)|Opera]], [[Vivaldi (web browser)|Vivaldi]] and [[Microsoft Edge]].&lt;br /&gt;
* Cloud-based environments, like [[Google Apps Script]]&amp;lt;ref&amp;gt;{{Cite web |title=V8 Runtime Overview {{!}} Apps Script |url=https://developers.google.com/apps-script/guides/v8-runtime |access-date=2025-01-26 |website=Google for Developers |language=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Couchbase Server|Couchbase]] database server&lt;br /&gt;
* [[Deno (software)|Deno]] runtime environment&amp;lt;ref&amp;gt;{{Cite web|url=https://github.com/denoland/deno|title=A secure JavaScript/TypeScript runtime built with V8, Rust, and Tokio: denoland/deno|date=July 8, 2019|via=GitHub}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Electron (software framework)|Electron]] desktop application framework, used by the [[Atom (text editor)|Atom]] and [[Visual Studio Code]] text editors&lt;br /&gt;
* [[MarkLogic Server|MarkLogic]] database server&lt;br /&gt;
* [[NativeScript]] mobile application framework&amp;lt;ref&amp;gt;{{Cite web|url=https://docs.nativescript.org/core-concepts/android-runtime/overview|title=Overview - NativeScript Docs|website=docs.nativescript.org}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Node.js]] runtime environment&amp;lt;ref&amp;gt;{{cite web|url=http://mashable.com/2011/03/10/node-js/|title=Why Everyone Is Talking About Node|author=Jolie O&amp;#039;Dell|date=March 10, 2011|publisher=Mashable}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Blink (browser engine)|Blink]], the Chromium browser engine&lt;br /&gt;
{{Portal|Free and open-source software|Internet}}&lt;br /&gt;
==References==&lt;br /&gt;
{{Reflist|30em}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
{{Commons category|V8 (JavaScript engine)}}&lt;br /&gt;
* {{Official website}}&lt;br /&gt;
&lt;br /&gt;
{{ECMAScript}}&lt;br /&gt;
{{Google FOSS}}&lt;br /&gt;
{{NodeJs}}&lt;br /&gt;
&lt;br /&gt;
[[Category:2008 software]]&lt;br /&gt;
[[Category:Free and open source interpreters]]&lt;br /&gt;
[[Category:Google Chrome]]&lt;br /&gt;
[[Category:Google software]]&lt;br /&gt;
[[Category:JavaScript engines]]&lt;br /&gt;
[[Category:Software using the BSD license]]&lt;br /&gt;
[[Category:Virtual machines]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Guy Harris</name></author>
	</entry>
</feed>