mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 20:37:34 +00:00
LibJS: Handle invalid and symbol PropertyName in its AK::Formatter
This would previously crash as we used to_string() without checking the type first. Circumvent that by handling invalid and numeric ones separately and then using to_string_or_symbol().
This commit is contained in:
parent
c81001f920
commit
777a93918f
1 changed files with 7 additions and 2 deletions
|
@ -230,9 +230,14 @@ namespace AK {
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
struct Formatter<JS::PropertyName> : Formatter<StringView> {
|
struct Formatter<JS::PropertyName> : Formatter<StringView> {
|
||||||
void format(FormatBuilder& builder, JS::PropertyName const& value)
|
void format(FormatBuilder& builder, JS::PropertyName const& property_name)
|
||||||
{
|
{
|
||||||
Formatter<StringView>::format(builder, value.to_string());
|
if (!property_name.is_valid())
|
||||||
|
Formatter<StringView>::format(builder, "<invalid PropertyName>");
|
||||||
|
else if (property_name.is_number())
|
||||||
|
Formatter<StringView>::format(builder, String::number(property_name.as_number()));
|
||||||
|
else
|
||||||
|
Formatter<StringView>::format(builder, property_name.to_string_or_symbol().to_display_string());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue