mirror of
https://github.com/RGBCube/serenity
synced 2025-06-01 10:38:13 +00:00
![]() 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. |
||
---|---|---|
.. | ||
About | ||
Browser | ||
Calculator | ||
Calendar | ||
Debugger | ||
DisplaySettings | ||
FileManager | ||
FontEditor | ||
Help | ||
HexEditor | ||
IRCClient | ||
KeyboardMapper | ||
KeyboardSettings | ||
Piano | ||
PixelPaint | ||
QuickShow | ||
SoundPlayer | ||
Spreadsheet | ||
SystemMonitor | ||
Terminal | ||
TextEditor | ||
ThemeEditor | ||
Welcome | ||
CMakeLists.txt |