ladybird/Utilities
Andreas Kling 6cdfbd01a6 LibJS: Add alternative source-to-bytecode pipeline in Rust
Implement a complete Rust reimplementation of the LibJS frontend:
lexer, parser, AST, scope collector, and bytecode code generator.

The Rust pipeline is built via Corrosion (CMake-Cargo bridge) and
linked into LibJS as a static library. It is gated behind a build
flag (ENABLE_RUST, on by default except on Windows) and two runtime
environment variables:

- LIBJS_CPP: Use the C++ pipeline instead of Rust
- LIBJS_COMPARE_PIPELINES=1: Run both pipelines in lockstep,
  aborting on any difference in AST or bytecode generated.

The C++ side communicates with Rust through a C FFI layer
(RustIntegration.cpp/h) that passes source text to Rust and receives
a populated Executable back via a BytecodeFactory interface.
2026-02-24 09:39:42 +01:00
..
CMakeLists.txt CMake: Remove ENABLE_WINDOWS_CI option and adjust presets to match Unix 2026-01-16 11:15:16 -07:00
dns.cpp Everywhere: Rename serenity_main to ladybird_main 2025-07-08 09:17:16 -04:00
image.cpp Everywhere: Fix even more typos 2025-08-27 08:48:01 +02:00
js.cpp LibJS: Add alternative source-to-bytecode pipeline in Rust 2026-02-24 09:39:42 +01:00
test262-runner.cpp test262-runner: Use the correct assertion failed signature on FreeBSD 2026-01-12 20:58:21 +01:00
wasm.cpp LibWasm: Parse and validate typeuse references 2026-02-10 13:00:16 +01:00
xml.cpp LibXML+LibWeb: Use existing HTML entities table for XML parsing too 2026-01-09 19:13:41 +00:00