1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-12 23:01:01 +00:00
serenity/Libraries/LibWeb
Andreas Kling 1c43442be4 LibJS+Clients: Add JS::VM object, separate Heap from Interpreter
Taking a big step towards a world of multiple global object, this patch
adds a new JS::VM object that houses the JS::Heap.

This means that the Heap moves out of Interpreter, and the same Heap
can now be used by multiple Interpreters, and can also outlive them.

The VM keeps a stack of Interpreter pointers. We push/pop on this
stack when entering/exiting execution with a given Interpreter.
This allows us to make this change without disturbing too much of
the existing code.

There is still a 1-to-1 relationship between Interpreter and the
global object. This will change in the future.

Ultimately, the goal here is to make Interpreter a transient object
that only needs to exist while you execute some code. Getting there
will take a lot more work though. :^)

Note that in LibWeb, the global JS::VM is called main_thread_vm(),
to distinguish it from future worker VM's.
2020-09-20 19:24:44 +02:00
..
Bindings LibWeb: Add Bindings::ScriptExecutionContext 2020-09-20 19:22:44 +02:00
CodeGenerators LibWeb: Add basic support for boolean IDL attributes :^) 2020-09-11 18:42:43 +02:00
CSS LibWeb: Add support for viewport-relative length units (#3433) 2020-09-08 20:39:09 +02:00
DOM LibJS+Clients: Add JS::VM object, separate Heap from Interpreter 2020-09-20 19:24:44 +02:00
HTML LibWeb: Implement <input type=submit> without using LibGUI 2020-09-12 18:18:20 +02:00
Layout LibWeb: cache in-process decoded images in ImageResource 2020-09-12 20:26:14 +02:00
Loader LibCore: Make Core::Object properties more dynamic 2020-09-15 21:46:26 +02:00
Page LibWeb: Two mouse event handling fixes 2020-09-12 17:55:19 +02:00
Painting LibWeb: Only paint focus outline when browser window has focus 2020-08-15 00:05:45 +02:00
Scripts LibWeb: Move CSS classes into the Web::CSS namespace 2020-07-26 20:05:15 +02:00
SVG LibWeb: SVG: implement SmoothQuadraticBezierCurve 2020-09-08 13:57:18 +02:00
Tests LibWeb: Implement document ready state 2020-08-31 23:05:51 +02:00
UIEvents LibWeb: Oops, provide the correct WrapperType for UIEvent 2020-07-28 19:40:11 +02:00
CMakeLists.txt LibWeb: Add Bindings::ScriptExecutionContext 2020-09-20 19:22:44 +02:00
DOMTreeModel.cpp LibWeb: Implement <template> parsing 2020-08-21 11:57:11 +02:00
DOMTreeModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
Dump.cpp LibWeb: Implement <template> parsing 2020-08-21 11:57:11 +02:00
Dump.h LibWeb: Move CSS classes into the Web::CSS namespace 2020-07-26 20:05:15 +02:00
FontCache.cpp LibWeb: Rename directory LibHTML => LibWeb 2020-03-07 10:32:51 +01:00
FontCache.h LibWeb: Use FlyString in FontCache keys 2020-05-26 23:45:48 +02:00
Forward.h LibWeb: Add Bindings::ScriptExecutionContext 2020-09-20 19:22:44 +02:00
InProcessWebView.cpp LibWeb: Register the InProcessWebView widget 2020-09-14 16:16:36 +02:00
InProcessWebView.h LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
LayoutTreeModel.cpp LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
LayoutTreeModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
Origin.h LibWeb: Add Origin concept (protocol, host, port tuple) 2020-04-07 23:01:45 +02:00
OutOfProcessWebView.cpp LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
OutOfProcessWebView.h LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
StylePropertiesModel.cpp LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
StylePropertiesModel.h LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
TreeNode.h LibWeb: Move tree iteration helpers from Node/LayoutNode to TreeNode 2020-08-10 15:21:23 +02:00
URLEncoder.cpp LibWeb: Use the URL encoder from AK instead of rolling a custom one 2020-06-15 17:56:00 +02:00
URLEncoder.h LibWeb: Use the URL encoder from AK instead of rolling a custom one 2020-06-15 17:56:00 +02:00
WebContentClient.cpp LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
WebContentClient.h LibWeb: Support window.alert() in multi-process context 2020-09-12 14:49:29 +02:00
WebViewHooks.h LibWeb: Move DOM classes into the Web::DOM namespace 2020-07-26 20:05:15 +02:00