Details
-
Task
-
Resolution: Done
-
P2: Important
-
None
-
None
-
None
Description
Evaluate using the V8 JavaScript engine for Qt WebKit, Qt Script, and Qt Quick.
Architecture vision
Qt has currently two JavaScript engines, JavaScriptCore as a part of Qt WebKit, and another copy of JavaScriptCore as the engine for Qt Script. Qt Script is also used as the JavaScript engine for Qt Quick (QML). The target architecture is to have a common JavaScript engine for Qt WebKit, Qt Script and QML.
Benefits:
- Mix QML and WebKit in the same app seamlessly, using a single JavaScript environment
- Use HTML5 web application APIs in QML applications
- Use the Qt Script API to extend WebKit's JS environment in hybrid apps and Qt WRT
- Less memory usage thanks to using just one JS engine
QTBUG-11464 describes ongoing work to unify Qt WebKit and Qt Script to use the same copy of JavaScriptCore
JavaScript engine evaluation
This task is for evaluating, whether we should use the V8 engine or the JavaScriptCore engine as the common JavaScript engine for Qt.
Evaluation criteria:
- Technical merits: performance, library size, features, concurrency support
- Technical feasibility of using the engine in the Qt architecture vision
- API stability, coverage, quality and extensibility
- Community openness: roadmap visibility, getting support and review from the community, becomming a part of the community