1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-18 18:31:00 +00:00
serenity/Userland/Libraries/LibJS
Timothy Flynn f1ce998d73 LibRegex+LibJS: Combine named and unnamed capture groups in MatchState
Combining these into one list helps reduce the size of MatchState, and
as a result, reduces the amount of memory consumed during execution of
very large regex matches.

Doing this also allows us to remove a few regex byte code instructions:
ClearNamedCaptureGroup, SaveLeftNamedCaptureGroup, and NamedReference.
Named groups now behave the same as unnamed groups for these operations.
Note that SaveRightNamedCaptureGroup still exists to cache the matched
group name.

This also removes the recursion level from the MatchState, as it can
exist as a local variable in Matcher::execute instead.
2021-08-15 11:43:45 +01:00
..
Bytecode LibJS: Change ExecutionContext's arguments list to a MarkedValueList 2021-08-10 23:07:50 +02:00
Heap Kernel: Make sys$perf_register_string() generate the string ID's 2021-08-12 00:03:39 +02:00
Runtime LibRegex+LibJS: Combine named and unnamed capture groups in MatchState 2021-08-15 11:43:45 +01:00
Tests LibJS: Prevent stack overflow in flatten_into_array() 2021-08-15 11:24:30 +01:00
AST.cpp LibJS: Parse RegExp literals at AST creation time, not execution time 2021-07-30 21:26:31 +01:00
AST.h LibJS: Parse RegExp literals at AST creation time, not execution time 2021-07-30 21:26:31 +01:00
CMakeLists.txt LibJS: Start implementing Temporal.PlainMonthDay 2021-08-15 10:36:36 +01:00
Console.cpp LibJS: Rename CallFrame => ExecutionContext 2021-06-24 19:28:00 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibJS: Start implementing Temporal.PlainMonthDay 2021-08-15 10:36:36 +01:00
Interpreter.cpp LibJS: Change ExecutionContext's arguments list to a MarkedValueList 2021-08-10 23:07:50 +02:00
Interpreter.h LibJS: Drop "Record" suffix from all the *Environment record classes 2021-07-01 12:28:57 +02:00
Lexer.cpp LibJS: Implement parsing and evaluation for AssignmentPatterns 2021-07-11 21:41:54 +01:00
Lexer.h LibJS+LibCrypto: Allow '_' as a numeric literal separator :^) 2021-06-26 16:30:35 +02:00
MarkupGenerator.cpp LibJS: Remove unused includes out of Cell.h, move to the users 2021-08-01 08:10:16 +02:00
MarkupGenerator.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Parser.cpp Userland: Make use of container version of any_of 2021-08-02 00:37:18 +02:00
Parser.h LibJS: Handle strict mode for functions more correctly 2021-07-20 23:45:28 +02:00
SourceRange.h LibJS: Implement parsing and evaluation for AssignmentPatterns 2021-07-11 21:41:54 +01:00
SyntaxHighlighter.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
SyntaxHighlighter.h LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
Token.cpp LibJS: Decode UTF-16 surrogate pairs during string literal construction 2021-08-04 11:18:24 +02:00
Token.h LibJS: Implement parsing and evaluation for AssignmentPatterns 2021-07-11 21:41:54 +01:00