ladybird/Userland/Libraries
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
..
LibArchive LibArchive: Limit all Tar header fields to their buffer length 2021-11-24 19:09:00 +02:00
LibAudio LibAudio: Convert FlacLoader to use new Core::Stream APIs :^) 2022-01-22 01:13:42 +03:30
LibC LibC: Flush all file streams on exit 2022-01-16 14:59:21 -08:00
LibCards AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibChess Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibCompress Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
LibConfig LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
LibCore LibCore: Populate the read buffer of Core::Stream::BufferedHelper 2022-01-22 01:13:42 +03:30
LibCoredump LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibCpp LibCpp: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
LibCrypt LibCrypt: Link the SHA2 hash implementation into LibCrypt privately 2022-01-08 18:56:29 +01:00
LibCrypto LibCrypo: Simplify mixed-sign bitwise_or 2022-01-18 20:04:06 +03:30
LibDebug Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
LibDesktop LibDesktop: Add Launcher::ensure_connection() 2022-01-21 13:44:36 +01:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff LibDiff: Fix error when parsing a 'new' hunk location 2021-12-31 14:12:54 +01:00
LibDl LibC+LibDl: Declare functions taking no arguments as taking void 2022-01-08 19:22:00 +01:00
LibDSP Everywhere: Use my new serenityos.org e-mail :^) 2022-01-14 11:54:09 +01:00
LibELF LibELF: Use shared memory mapping when loading ELF objects 2022-01-15 19:51:15 +01:00
LibFileSystemAccessClient FileSystemAccessClient: Remove old API returning file descriptors :^) 2022-01-20 10:39:12 +01:00
LibGemini LibGemini: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibGfx LibGfx: Fix stylistic issues in BitmapFont 2022-01-22 00:26:23 +00:00
LibGL LibGL: Fix incorrect GL_DECAL constant value 2022-01-21 15:21:25 +01:00
LibGUI LibGUI: Use Font::glyph_or_emoji_width() in TextEditor 2022-01-22 00:26:23 +00:00
LibHTTP LibHTTP: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibImageDecoderClient LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
LibIMAP LibIMAP+Userland: Convert LibIMAP::Client to the Serenity Stream APIs 2022-01-13 15:16:12 +03:30
LibIPC LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
LibJS LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
LibKeyboard Kernel: Stop using LibKeyboard's CharacterMap in HIDManagement 2022-01-21 18:25:44 +01:00
LibLine LibLine: Replace call to vfork() with fork() 2022-01-07 11:02:30 +01:00
LibM LibM: Count fractions when exponent < -1 with mantissa == 0 2022-01-02 12:44:31 +03:30
LibMain LibMain: Make "Runtime error" warnln red 2021-12-23 12:41:13 -08:00
LibMarkdown Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
LibPCIDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibPDF LibPDF: Convert PDF::Parser::m_document from RefPtr to WeakPtr 2022-01-08 18:57:55 +01:00
LibProtocol LibCore+LibIPC+Everywhere: Return Stream::LocalSocket from LocalServer 2022-01-15 13:29:48 +03:30
LibPthread AK+LibC+LibPthread: Introduce NoAllocationGuard 2022-01-11 00:08:58 +01:00
LibRegex LibRegex: Preserve capture groups and matches across ForkReplace 2022-01-22 00:35:49 +00:00
LibSanitizer LibSanitizer: Log UBSAN errors in red text to the debug console 2021-12-15 10:30:32 -08:00
LibSoftGPU LibGL+LibSoftGPU: Clean up some for loops 2022-01-20 10:35:01 +01:00
LibSQL LibSQL: Introduce SELECT ... LIMIT xxx OFFSET yyy 2022-01-16 11:17:15 +01:00
LibSymbolication LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibSyntax LibSyntax: Add a language enum entry for git commit messages 2022-01-18 09:01:16 +01:00
LibSystem LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore 2021-11-23 11:33:36 +01:00
LibTest LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
LibTextCodec LibTextCodec: Add alternate Cyrillic (aka Koi8-r) encoding 2021-12-16 22:44:45 +01:00
LibThreading Everywhere: Use my new serenityos.org e-mail :^) 2022-01-14 11:54:09 +01:00
LibTimeZone LibJS+LibTimeZone+LibUnicode: Indicate whether a time zone is in DST 2022-01-19 21:20:41 +00:00
LibTLS LibTLS: Mark the socket as idle after a TLS-level disconnection 2022-01-08 13:41:31 +03:30
LibUnicode LibJS+LibUnicode: Return the appropriate time zone name depending on DST 2022-01-19 21:20:41 +00:00
LibUSBDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibVideo LibVideo/VP9: Do not null guard calls to free 2022-01-01 17:30:25 +00:00
LibVT Userland: Add horizontal mouse scroll support 2022-01-20 10:37:52 +01:00
LibWasm Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
LibWeb LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
LibWebSocket Userland: Resolve tautological-constant-out-of-range-compare warnings 2022-01-04 07:51:31 +00:00
LibX86 Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
CMakeLists.txt LibTimeZone+Meta: Add plumbing for an IANA Time Zone Database generator 2022-01-08 12:45:34 +01:00