mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 15:40:19 +00:00
LibRegex+LibJS: Change capture group names from a String to a FlyString
The parser now stores this as a FlyString everywhere, so consumers can also use it as a FlyString.
This commit is contained in:
parent
4f2cbe119b
commit
c5b5c779ff
Notes:
sideshowbarker
2024-07-18 05:28:13 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/c5b5c779ff9 Pull-request: https://github.com/SerenityOS/serenity/pull/9499 Reviewed-by: https://github.com/alimpfard Reviewed-by: https://github.com/davidot ✅
2 changed files with 4 additions and 4 deletions
|
@ -141,7 +141,7 @@ static Value get_match_indices_array(GlobalObject& global_object, Utf16View cons
|
|||
}
|
||||
|
||||
// 1.1.4.1.5 MakeIndicesArray ( S , indices, groupNames, hasGroups ), https://tc39.es/proposal-regexp-match-indices/#sec-makeindicesarray
|
||||
static Value make_indices_array(GlobalObject& global_object, Utf16View const& string, Vector<Optional<Match>> const& indices, HashMap<String, Match> const& group_names, bool has_groups)
|
||||
static Value make_indices_array(GlobalObject& global_object, Utf16View const& string, Vector<Optional<Match>> const& indices, HashMap<FlyString, Match> const& group_names, bool has_groups)
|
||||
{
|
||||
// Note: This implementation differs from the spec, but has the same behavior.
|
||||
//
|
||||
|
@ -268,7 +268,7 @@ static Value regexp_builtin_exec(GlobalObject& global_object, RegExpObject& rege
|
|||
return {};
|
||||
|
||||
Vector<Optional<Match>> indices { Match::create(match) };
|
||||
HashMap<String, Match> group_names;
|
||||
HashMap<FlyString, Match> group_names;
|
||||
|
||||
bool has_groups = result.n_named_capture_groups != 0;
|
||||
Object* groups_object = has_groups ? Object::create(global_object, nullptr) : nullptr;
|
||||
|
@ -285,7 +285,7 @@ static Value regexp_builtin_exec(GlobalObject& global_object, RegExpObject& rege
|
|||
array->create_data_property_or_throw(i + 1, capture_value);
|
||||
|
||||
if (capture.capture_group_name.has_value()) {
|
||||
auto group_name = capture.capture_group_name->to_string();
|
||||
auto group_name = capture.capture_group_name.release_value();
|
||||
groups_object->create_data_property_or_throw(group_name, js_string(vm, capture.view.u16_view()));
|
||||
group_names.set(move(group_name), Match::create(capture));
|
||||
}
|
||||
|
|
|
@ -487,7 +487,7 @@ public:
|
|||
}
|
||||
|
||||
RegexStringView view { nullptr };
|
||||
Optional<StringView> capture_group_name {};
|
||||
Optional<FlyString> capture_group_name {};
|
||||
size_t line { 0 };
|
||||
size_t column { 0 };
|
||||
size_t global_offset { 0 };
|
||||
|
|
Loading…
Reference in a new issue