1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 21:08:12 +00:00

LibWeb: Move length-unit-from-string code into Length

This means the units are defined in a single place instead of two.

Also removed the verify that we didn't produce a bogus % dimension token
in the Tokenizer, since this has never happened and the parser is not a
tokenizer test suite. :^)
This commit is contained in:
Sam Atkins 2022-02-22 12:10:48 +00:00 committed by Andreas Kling
parent 608bfac2a9
commit f76a541819
3 changed files with 41 additions and 38 deletions

View file

@ -156,4 +156,41 @@ const char* Length::unit_name() const
VERIFY_NOT_REACHED();
}
Optional<Length::Type> Length::unit_from_name(StringView name)
{
if (name.equals_ignoring_case("px"sv)) {
return Length::Type::Px;
} else if (name.equals_ignoring_case("pt"sv)) {
return Length::Type::Pt;
} else if (name.equals_ignoring_case("pc"sv)) {
return Length::Type::Pc;
} else if (name.equals_ignoring_case("mm"sv)) {
return Length::Type::Mm;
} else if (name.equals_ignoring_case("rem"sv)) {
return Length::Type::Rem;
} else if (name.equals_ignoring_case("em"sv)) {
return Length::Type::Em;
} else if (name.equals_ignoring_case("ex"sv)) {
return Length::Type::Ex;
} else if (name.equals_ignoring_case("ch"sv)) {
return Length::Type::Ch;
} else if (name.equals_ignoring_case("vw"sv)) {
return Length::Type::Vw;
} else if (name.equals_ignoring_case("vh"sv)) {
return Length::Type::Vh;
} else if (name.equals_ignoring_case("vmax"sv)) {
return Length::Type::Vmax;
} else if (name.equals_ignoring_case("vmin"sv)) {
return Length::Type::Vmin;
} else if (name.equals_ignoring_case("cm"sv)) {
return Length::Type::Cm;
} else if (name.equals_ignoring_case("in"sv)) {
return Length::Type::In;
} else if (name.equals_ignoring_case("Q"sv)) {
return Length::Type::Q;
}
return {};
}
}