1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 10:38:13 +00:00
serenity/Applications
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
..
About LibGUI: Make GUI::Application a Core::Object 2020-07-04 14:05:57 +02:00
Browser Browser: Move the basic Tab UI skeleton to JSON GUI 2020-09-14 19:55:17 +02:00
Calculator Applications: Stop setting initial window location 2020-08-01 08:06:48 +02:00
Calendar Calendar: Avoid unnecessary lambda 2020-08-30 10:31:04 +02:00
Debugger LibDebug: Move everything into the "Debug" namespace 2020-08-25 09:46:06 +02:00
DisplaySettings DisplaySettings: Remove unnecessary file open for non-paths 2020-09-03 11:03:16 +02:00
FileManager FileManager: Prevent feedback loop between treeview and directory view 2020-09-19 14:09:59 +02:00
FontEditor LibGfx+FontEditor+Base: Add "baseline" value to all fonts 2020-09-19 19:16:22 +02:00
Help LibWeb: Rename PageView => InProcessWebView 2020-08-17 18:05:35 +02:00
HexEditor HexEditor: Use widget override cursors 2020-09-11 14:37:30 +02:00
IRCClient IRCClient: Remove unused dump() logic 2020-09-12 13:46:15 +02:00
KeyboardMapper KeyboardMapper: Avoid using [&] captures for persistent lambdas 2020-09-13 21:41:45 +02:00
KeyboardSettings LibGUI: Move GUI::Model::Role to GUI::ModelRole 2020-08-16 16:44:09 +02:00
Piano Refactor: Replace usages of FixedArray with Array. 2020-09-08 14:01:21 +02:00
PixelPaint LibGfx: Saner memory usage of indexed bitmaps 2020-09-12 00:13:29 +02:00
QuickShow QuickShow: Allow copying the current bitmap to the clipboard :^) 2020-09-05 16:53:30 +02:00
SoundPlayer SoundPlayer: Uninitialized variable in SoundPlayerWidget, found by Coverity 2020-08-17 09:17:57 +02:00
Spreadsheet LibJS+Clients: Add JS::VM object, separate Heap from Interpreter 2020-09-20 19:24:44 +02:00
SystemMonitor Base: Move 16x16 common icons to /res/icons/16x16/ 2020-08-27 15:38:02 +02:00
Terminal Terminal: Use utmpupdate to update /var/run/utmp 2020-09-06 16:15:51 +02:00
TextEditor Build+TextEditor: Add a compile_json_gui() CMake helper 2020-09-14 16:16:36 +02:00
ThemeEditor DevTools+Apps: Set correct icons for ThemeEditor and VisualBuilder 2020-08-31 09:14:18 +02:00
Welcome Base: Rename Pebbleton to reflect actual height 2020-08-16 19:38:21 +02:00
CMakeLists.txt ChessEngine: Move from Applications to Services 2020-08-28 12:53:02 +02:00