ladybird/Libraries/LibJS/Bytecode
Andreas Kling e243e146de LibJS+LibRegex: Switch RegExp over to the Rust engine
Switch LibJS `RegExp` over to the Rust-backed `ECMAScriptRegex` APIs.

Route `new RegExp()`, regex literals, and the RegExp builtins through
the new compile and exec APIs, and stop re-validating patterns with the
deleted C++ parser on the way in. Preserve the observable error
behavior by carrying structured compile errors and backtracking-limit
failures across the FFI boundary. Cache compiled regex state and named
capture metadata on `RegExpObject` in the new representation.

Use the new API surface to simplify and speed up the builtin paths too:
share `exec_internal`, cache compiled regex pointers, keep the legacy
RegExp statics lazy, run global replace through batch `find_all`, and
optimize replace, test, split, and String helper paths. Add regression
tests for those JavaScript-visible paths.
2026-03-27 17:32:19 +01:00
..
AsmInterpreter LibJS: Remove dead C++ bytecode compilation functions 2026-03-19 21:55:10 -05:00
BasicBlock.cpp LibJS: Stop worrying about Instruction destructors 2025-11-21 09:46:03 +01:00
BasicBlock.h LibJS: Remove remaining C++ pipeline artifacts 2026-03-19 21:55:10 -05:00
BuiltinAbstractOperationsEnabled.h LibJS: Introduce NativeJavaScriptBackedFunction 2025-11-30 11:54:54 +01:00
Builtins.h LibJS: Remove remaining C++ pipeline artifacts 2026-03-19 21:55:10 -05:00
Bytecode.def LibJS: Add Mov2/Mov3 instructions to reduce dispatch overhead 2026-03-11 17:04:32 +01:00
ClassBlueprint.h LibJS: Add ClassBlueprint data structures 2026-02-11 23:57:41 +01:00
Executable.cpp LibJS: Improve bytecode executable dump format 2026-03-20 00:51:23 -05:00
Executable.h LibJS: Move source range cache from ExecutionContext to Executable 2026-03-11 13:33:47 +01:00
FormatOperand.h LibJS: Improve bytecode executable dump format 2026-03-20 00:51:23 -05:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
Instruction.cpp LibJS: Flatten Operand to 32-bit index in bytecode instruction stream 2025-12-09 21:44:13 -06:00
Instruction.h Meta: Reformat QtCreator file-listing script for readability 2026-02-23 13:10:03 +01:00
Interpreter.cpp LibJS+LibRegex: Switch RegExp over to the Rust engine 2026-03-27 17:32:19 +01:00
Interpreter.h LibJS: Eliminate GeneratorResult GC cell allocation on yield/await 2026-03-20 15:57:23 -05:00
Label.cpp
Label.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Operand.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PropertyAccess.h LibJS: Remove dead C++ bytecode compilation functions 2026-03-19 21:55:10 -05:00
PropertyKeyTable.cpp LibJS: Cache fully-formed PropertyKeys in Executable 2025-12-11 14:34:45 -06:00
PropertyKeyTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PutKind.h LibJS: Consolidate Put bytecode instructions and reduce code bloat 2026-03-04 18:53:12 +01:00
RegexTable.cpp LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
RegexTable.h LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
Register.h LibJS: Replace implicit environment stack with explicit registers 2026-02-09 16:35:39 +01:00
StringTable.cpp LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
StringTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00