ladybird/Userland/Libraries/LibWeb
Luke Wilde 631bbcd00a LibJS: Refactor interpreter to use Script and Source Text Modules
This also refactors interpreter creation to follow
InitializeHostDefinedRealm, but I couldn't fit it in the title :^)

This allows us to follow the spec much more closely rather than being
completely ad-hoc with just the parse node instead of having all the
surrounding data such as the realm of the parse node.

The interpreter creation refactor creates the global execution context
once and doesn't take it off the stack. This allows LibWeb to take the
global execution context and manually handle it, following the HTML
spec. The HTML spec calls this the "realm execution context" of the
environment settings object.

It also allows us to specify the globalThis type, as it can be
different from the global object type. For example, on the web, Window
global objects use a WindowProxy global this value to enforce the same
origin policy on operations like [[GetOwnProperty]].

Finally, it allows us to directly call Program::execute in perform_eval
and perform_shadow_realm_eval as this moves
global_declaration_instantiation into Interpreter::run
(ScriptEvaluation) as per the spec.

Note that this doesn't evalulate Source Text Modules yet or refactor
the bytecode interpreter, that's work for future us :^)

This patch was originally build by Luke for the environment settings
object change but was also needed for modules. So I (davidot) have
modified it with the new completion changes and setup for that.

Co-authored-by: davidot <davidot@serenityos.org>
2022-01-22 01:21:18 +00:00
..
Bindings LibWeb: Implement CanvasRenderingContext2D.measureText 2022-01-04 22:41:07 +00:00
Cookie LibIPC+IPCCompiler+AK: Make IPC value decoders return ErrorOr<void> 2021-11-28 23:14:19 +01:00
Crypto LibWeb: Use ByteBuffer::copy() instead of a manual copy in SubtleCrypto 2021-12-15 12:54:34 +00:00
CSS LibWeb: Add Formatters for Length, Percentage and LengthPercentage 2022-01-20 00:04:10 +01:00
DOM LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
DOMParsing LibWeb: Clean up static function in header 2021-10-06 23:52:40 +01:00
DumpLayoutTree Everywhere: Remove unused ArgsParser header 2021-11-01 21:12:58 +01:00
Encoding LibWeb: Implement TextEncoder.prototype.encoding 2021-12-12 20:58:36 +01:00
Geometry LibWeb: Add DOMRectReadOnly and make DOMRect inherit from it 2021-10-08 23:00:49 +02:00
HighResolutionTime LibWeb: Provide a default DOM::EventTarget::dispatch_event() 2021-09-25 23:36:43 +02:00
HTML LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
IntersectionObserver LibWeb: Stub out a basic IntersectionObserver interface 2021-10-14 10:32:51 +02:00
Layout Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
Loader LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
NavigationTiming LibWeb: Use RefCountForwarder for NavigationTiming::PerformanceTiming 2021-12-09 21:28:52 +01:00
Page Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
Painting LibWeb: Remove reference_for_percent parameter from Length::resolved() 2022-01-20 00:04:10 +01:00
RequestIdleCallback LibWeb: Add the IdleDeadline interface from the RequestIdleCallback spec 2021-09-17 13:20:18 +02:00
ResizeObserver LibWeb: Stub out a basic ResizeObserver interface 2021-10-11 00:54:01 +02:00
Scripts Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Selection LibWeb: Stub out a basic Selection interface 2021-10-11 00:32:19 +02:00
SVG LibWeb: Convert stroke-width to LengthPercentage 2022-01-20 00:04:10 +01:00
Tests LibWeb: Capture <script> element's node document on execution 2021-12-21 13:50:00 -08:00
UIEvents LibWeb: Change the type of MouseEvent members to double 2021-10-01 20:14:45 +02:00
URL Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
WebAssembly LibJS: Replace the custom unwind mechanism with completions :^) 2022-01-06 12:36:23 +01:00
XHR LibWeb: Don't send a request body in XMLHttpRequest GET or HEAD 2021-10-04 00:06:48 +02:00
CMakeLists.txt LibWeb: Implement CanvasRenderingContext2D.measureText 2022-01-04 22:41:07 +00:00
DOMTreeModel.cpp Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
DOMTreeModel.h AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
Dump.cpp LibWeb: Include custom properties in CSS dump 2021-12-09 21:30:31 +01:00
Dump.h LibWeb: Implement @supports rule :^) 2021-10-08 23:02:57 +02:00
FontCache.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FontCache.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibWeb: Add PercentageStyleValue, and parse it 2022-01-20 00:04:10 +01:00
ImageDecoding.cpp LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
ImageDecoding.h LibWeb: Move ImageDecoder client connection singleton to its own file 2021-11-20 10:56:31 +01:00
InProcessWebView.cpp Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
InProcessWebView.h Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
Namespace.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Namespace.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Origin.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
OutOfProcessWebView.cpp Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
OutOfProcessWebView.h Browser+LibWeb+WebContent: Add variables display to Inspector 2021-12-10 06:52:17 +01:00
QualifiedName.h LibWeb: Use HTML-uppercased qualified name for the Element node name 2021-05-04 23:24:03 +01:00
StylePropertiesModel.cpp Everywhere: Use my shiny new serenityos.org email :^) 2021-09-03 12:22:36 +02:00
StylePropertiesModel.h AK: Make JSON parser return ErrorOr<JsonValue> (instead of Optional) 2021-11-17 00:21:10 +01:00
TreeNode.h LibWeb: Allow Document::ref() when ref-count is zero 2021-10-03 16:42:34 +02:00
WebContentClient.cpp LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
WebContentClient.h LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
WebViewHooks.h Browser+LibWeb+WebContent: Add variables display to Inspector 2021-12-10 06:52:17 +01:00