LibRegex: Remove the legacy C++ ECMA-262 engine

Delete the old C++ ECMA-262 parser, optimizer, and matcher now that all
in-tree users compile and execute through `ECMAScriptRegex`.

Stop building the legacy engine, remove its source files and the
POSIX-only fuzzers that depended on it, and update the remaining
LibRegex tests to target the Rust-backed facade instead of the deleted
implementation. Clean up the last includes, comments, and helper paths
that only existed to support the old backend.

After this commit LibRegex has a single ECMAScript engine in-tree,
eliminating duplicated maintenance and unifying future regex work.
This commit is contained in:
Andreas Kling 2026-03-25 10:52:59 +01:00 committed by Ali Mohammad Pur
parent e243e146de
commit d7bf9d3898
Notes: github-actions[bot] 2026-03-27 16:35:07 +00:00
25 changed files with 59 additions and 13411 deletions

View file

@ -346,7 +346,7 @@ public:
// { [[Type]]: "RegExp", [[RegExpMatcher]]: value.[[RegExpMatcher]], [[OriginalSource]]: value.[[OriginalSource]],
// [[OriginalFlags]]: value.[[OriginalFlags]] }.
else if (auto const* reg_exp_object = as_if<JS::RegExpObject>(*object)) {
// NOTE: A Regex<ECMA262> object is perfectly happy to be reconstructed with just the source+flags.
// NOTE: ECMAScriptRegex is perfectly happy to be reconstructed with just the source+flags.
// In the future, we could optimize the work being done on the deserialize step by serializing
// more of the internal state (the [[RegExpMatcher]] internal slot).
serialized.encode(ValueTag::RegExpObject);