Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
WebKit
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Components == === WebCore === WebCore is a layout, rendering, and [[Document Object Model]] (DOM) [[Library (computing)|library]] for HTML and [[Scalable Vector Graphics]] (SVG), developed by the WebKit project. Its full source code is licensed under the [[GNU Lesser General Public License]] (LGPL). The WebKit framework wraps WebCore and JavaScriptCore, providing an Objective-C [[application programming interface]] to the [[C++]]-based WebCore rendering engine and JavaScriptCore script engine, allowing it to be easily referenced by applications based on the [[Cocoa API]]; later versions also include a [[cross-platform]] C++ platform abstraction, and various ports provide more APIs.{{Citation needed|date=May 2021}} WebKit passes the [[Acid2]] and [[Acid3]] tests, with pixel-perfect rendering and no timing or smoothness issues on reference hardware.<ref>{{cite web |url=https://webkit.org/blog/280/full-pass-of-acid-3/ |title=Full Pass Of Acid3 |access-date=September 29, 2008 |last=Stachowiak |first=Maciej |date=September 25, 2008 |work=Surfin' Safari β The WebKit Blog |url-status=live |archive-url=https://web.archive.org/web/20080929003302/http://webkit.org/blog/280/full-pass-of-acid-3/ |archive-date=September 29, 2008 |df=mdy-all }}</ref> === JavaScriptCore === JavaScriptCore is a framework that provides a [[JavaScript engine]] for WebKit implementations, and provides this type of scripting in other contexts within macOS.<ref name="annjavascript"/><ref name="webjavascript">{{cite web|url=https://webkit.org/projects/javascript/|title=The WebKit Open Source Project β JavaScript|url-status=live|archive-url=https://web.archive.org/web/20150814004755/http://www.webkit.org/projects/javascript/|archive-date=August 14, 2015|df=mdy-all}}</ref> JavaScriptCore is originally derived from [[KDE]]'s JavaScript engine ([[KJS (JavaScript engine)|KJS]]) [[Library (computing)|library]] (which is part of the KDE project) and the [[PCRE]] [[regular expression]] library. Since forking from KJS and PCRE, JavaScriptCore has been improved with many new features{{Such as|date=May 2025}} and greatly improved performance.<ref name="javascriptshowdown">{{cite web |title=The Great Browser JavaScript Showdown |url=http://www.codinghorror.com/blog/archives/001023.html |date=December 19, 2007 |url-status=live |archive-url=https://web.archive.org/web/20080906204651/http://www.codinghorror.com/blog/archives/001023.html |archive-date=September 6, 2008 |df=mdy-all }}</ref> On June 2, 2008, the WebKit project announced they rewrote JavaScriptCore as "SquirrelFish", a [[bytecode]] [[Interpreter (computing)|interpreter]].<ref name="Announcing SquirrelFish"/><ref name="SquirrelFish project"/> The project evolved into SquirrelFish Extreme (abbreviated SFX, marketed as Nitro), announced on September 18, 2008 further speeding up JavaScript execution.<ref name="Introducing SquirrelFish Extreme" /> An optimizing [[Just-in-time compilation|just-in-time]] (JIT) compiler named ''FTL'' was announced on May 13, 2014.<ref name="ftljit">{{cite news|url=https://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/|title=Introducing the WebKit FTL JIT|newspaper=Webkit |date=May 13, 2014|url-status=live|archive-url=https://web.archive.org/web/20170119202735/https://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/|archive-date=January 19, 2017|df=mdy-all}}</ref> It uses [[LLVM]] to generate optimized machine code. "FTL" stands for "Fourth-Tier-LLVM", and unofficially for [[faster-than-light]], alluding to its speed.<ref>{{cite web|url=https://arstechnica.com/information-technology/2014/05/apple-integrates-llvm-compiler-to-boost-webkit-javascript-performance/|title=Apple integrates LLVM compiler to boost WebKit JavaScript performance|date=May 16, 2014|url-status=live|archive-url=https://web.archive.org/web/20170708093248/https://arstechnica.com/information-technology/2014/05/apple-integrates-llvm-compiler-to-boost-webkit-javascript-performance/|archive-date=July 8, 2017|df=mdy-all}}</ref> As of February 15, 2016, the backend of FTL JIT is replaced by "Bare Bones Backend" (or B3 for short).<ref>{{cite web|url=https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/|title=Introducing the B3 JIT Compiler|date=February 15, 2016|url-status=live|archive-url=https://web.archive.org/web/20170503053344/https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/|archive-date=May 3, 2017|df=mdy-all}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)