ladybird/Meta/Lagom
Ben Wiederhake 5d3c437cce LibJS: Fix start position of multi-line tokens
This broke in case of unterminated regular expressions, causing goofy location
numbers, and 'source_location_hint' to eat up all memory:

Unexpected token UnterminatedRegexLiteral. Expected statement (line: 2, column: 4294967292)
2020-09-12 00:13:29 +02:00
..
Fuzzers LibJS: Fix start position of multi-line tokens 2020-09-12 00:13:29 +02:00
.gitignore Lagom: Move this into Meta/ 2019-11-18 09:07:05 +01:00
CMakeLists.txt Build: Add some -Wno-unknown-warning-option flags to CXXFLAGS 2020-09-01 12:00:53 +02:00
ReadMe.md Lagom: Add a note on how to build the fuzzers to readme 2020-07-14 17:45:16 +02:00
TestApp.cpp LibCore: Remove leading C from filenames 2020-02-06 15:04:03 +01:00
TestJson.cpp AK: JsonParser improvements 2020-06-13 12:43:22 +02:00

Lagom

The Serenity C++ library, for other Operating Systems.

About

If you want to bring the comfortable Serenity classes with you to another system, look no further. This is basically a "port" of the AK and LibCore libraries to generic *nix systems.

Lagom is a Swedish word that means "just the right amount." (Wikipedia)

Fuzzing

Lagom can be used to fuzz parts of SerenityOS's code base. This requires buildling with clang, so it's convenient to use a different build directory for that. Run CMake like so:

# From the root of the SerenityOS checkout:
mkdir BuildLagom && cd BuildLagom
cmake -GNinja -DBUILD_LAGOM=ON -DENABLE_FUZZER_SANITIZER=ON -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ..
ninja FuzzJs && Meta/Lagom/Fuzzers/FuzzJs

clang emits different warnings than gcc, so you'll likely have to remove -Werror in CMakeLists.txt and Meta/Lagom/CMakeLIsts.txt.