ladybird/Meta/Lagom/Fuzzers
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
..
add-serenity-support-to-fuzzilli.patch Lagom/Fuzzers: Fix FuzzilliJs build and update patch for new Fuzzilli version 2021-01-24 00:40:49 +01:00
CMakeLists.txt Meta: Add a fuzzer for the QOILoader 2021-12-21 13:27:27 +01:00
FuzzASN1.cpp Lagom/Fuzzers: Add fuzzer for the LibTLS ASN1 parser 2021-09-18 17:15:08 +00:00
FuzzBMPLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzCyrillicDecoder.cpp Lagom/Fuzzers: Add fuzzers for Windows-1251 and Windows-1255 decoders 2021-05-01 17:59:08 +02:00
FuzzDeflateCompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzDeflateDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzELF.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzFlacLoader.cpp LibAudio: New error propagation API in Loader and Buffer 2021-11-28 13:33:51 -08:00
FuzzGemini.cpp Fuzzers: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
FuzzGIFLoader.cpp LibGfx: Make ImageDecoderPlugin::frame() return ErrorOr<> 2021-11-21 20:22:48 +01:00
FuzzGzipCompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzGzipDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzHebrewDecoder.cpp Lagom/Fuzzers: Add fuzzers for Windows-1251 and Windows-1255 decoders 2021-05-01 17:59:08 +02:00
FuzzHttpRequest.cpp AK+Userland: Fix some compiler warnings and make variables const-ref 2021-05-16 17:49:42 +02:00
FuzzICOLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzilliJs.cpp LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
FuzzilliJs.dockerfile Lagom/Fuzzers: Add a Dockerfile for FuzzilliJs 2020-11-08 11:01:07 +01:00
FuzzilliJsInstructions.md Meta: Fix broken external links 2021-10-10 15:18:55 -07:00
FuzzIMAPParser.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzJPGLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzJs.cpp LibJS: Refactor interpreter to use Script and Source Text Modules 2022-01-22 01:21:18 +00:00
FuzzJs.dict Lagom: Add fuzz testing for LibJS using libFuzzer (#1692) 2020-04-08 10:40:02 +02:00
FuzzLatin1Decoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzLatin2Decoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzMarkdown.cpp Fuzzers: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
FuzzMD5.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzPBMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPDF.cpp Lagom/Fuzzers: Add fuzzer for PDF document 2021-10-30 10:33:56 -07:00
FuzzPEM.cpp Lagom/Fuzzers: Add fuzzer for the LibCrypto PEM parser 2021-09-18 17:15:08 +00:00
FuzzPGMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPNGLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzPPMLoader.cpp Fuzzers: Use ImageDecoderPlugin::frame() in image decoder fuzzers 2021-11-18 21:11:30 +01:00
FuzzQOILoader.cpp Meta: Add a fuzzer for the QOILoader 2021-12-21 13:27:27 +01:00
FuzzQuotedPrintableParser.cpp Lagom/Fuzzers: Add fuzzer for the quoted printable decoder 2021-07-24 20:11:28 +04:30
FuzzRegexECMA262.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzRegexPosixBasic.cpp Lagom/Fuzzers: Add fuzzer for POSIX basic regex parser 2021-07-13 01:34:22 +04:30
FuzzRegexPosixExtended.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzRSAKeyParsing.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA1.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA256.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA384.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzSHA512.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzShell.cpp Fuzzers: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
FuzzSQLParser.cpp LibSQL: Move Lexer and Parser machinery to AST directory 2021-06-24 00:36:53 +02:00
FuzzTTF.cpp LibTTF/LibGfx: Remove circular dependency by merging LibTTF into LibGfx 2021-07-29 21:46:25 +01:00
FuzzURL.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzUTF16BEDecoder.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FuzzWasmParser.cpp Meta: Add a Wasm parser fuzzer 2021-05-21 00:15:23 +01:00
FuzzWAVLoader.cpp LibAudio: Convert FlacLoader to use new Core::Stream APIs :^) 2022-01-22 01:13:42 +03:30
FuzzZip.cpp Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
FuzzZlibDecompression.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00