1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:07:47 +00:00

LibJS+LibWeb: Convert string view PrimitiveString instances to String

First, this adds an overload of PrimitiveString::create for StringView.
This overload will throw an OOM completion if creating a String fails.
This is not only a bit more convenient, but it also ensures at compile
time that all PrimitiveString::create(string_view) invocations will be
handled as String and OOM-aware.

Next, this wraps all invocations to PrimitiveString::create(string_view)
with MUST_OR_THROW_OOM.

A small PrimitiveString::create(DeprecatedFlyString) overload also had
to be added to disambiguate between the StringView and DeprecatedString
overloads.
This commit is contained in:
Timothy Flynn 2023-02-09 09:00:14 -05:00 committed by Linus Groh
parent 69a56a8e39
commit c3abb1396c
69 changed files with 223 additions and 186 deletions

View file

@ -88,7 +88,7 @@ static ThrowCompletionOr<Collator*> initialize_collator(VM& vm, Collator& collat
// 24. If relevantExtensionKeys contains "kn", then
if (relevant_extension_keys.span().contains_slow("kn"sv) && result.kn.has_value()) {
// a. Set collator.[[Numeric]] to SameValue(r.[[kn]], "true").
collator.set_numeric(same_value(PrimitiveString::create(vm, result.kn.release_value()), PrimitiveString::create(vm, "true"sv)));
collator.set_numeric(same_value(PrimitiveString::create(vm, result.kn.release_value()), MUST_OR_THROW_OOM(PrimitiveString::create(vm, "true"sv))));
}
// 25. If relevantExtensionKeys contains "kf", then
@ -105,14 +105,14 @@ static ThrowCompletionOr<Collator*> initialize_collator(VM& vm, Collator& collat
// a. If usage is "sort", then
if (collator.usage() == Collator::Usage::Sort) {
// i. Let sensitivity be "variant".
sensitivity = PrimitiveString::create(vm, "variant"sv);
sensitivity = MUST_OR_THROW_OOM(PrimitiveString::create(vm, "variant"sv));
}
// b. Else,
else {
// i. Let dataLocale be r.[[dataLocale]].
// ii. Let dataLocaleData be localeData.[[<dataLocale>]].
// iii. Let sensitivity be dataLocaleData.[[sensitivity]].
sensitivity = PrimitiveString::create(vm, "base"sv);
sensitivity = MUST_OR_THROW_OOM(PrimitiveString::create(vm, "base"sv));
}
}