From c49899b0b64abf1a9cc7e79751fe500fbf5b9ab4 Mon Sep 17 00:00:00 2001 From: Luke Date: Sun, 3 Jan 2021 15:01:36 +0000 Subject: [PATCH] FuzzJs: If the program successfully parsed, try running it This should help us get a lot more coverage in LibJS. --- Meta/Lagom/Fuzzers/FuzzJs.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Meta/Lagom/Fuzzers/FuzzJs.cpp b/Meta/Lagom/Fuzzers/FuzzJs.cpp index 86c878c9e7..57c20e4f8c 100644 --- a/Meta/Lagom/Fuzzers/FuzzJs.cpp +++ b/Meta/Lagom/Fuzzers/FuzzJs.cpp @@ -25,8 +25,10 @@ */ #include +#include #include #include +#include #include #include @@ -35,6 +37,11 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) auto js = AK::StringView(static_cast(data), size); auto lexer = JS::Lexer(js); auto parser = JS::Parser(lexer); - parser.parse_program(); + auto program = parser.parse_program(); + if (!parser.has_errors()) { + auto vm = JS::VM::create(); + auto interpreter = JS::Interpreter::create(*vm); + interpreter->run(interpreter->global_object(), *program); + } return 0; }