LibWeb/CSS: Set enum sizes for media query types

This reduces `MediaFeature` from 112 to 104 bytes.
This commit is contained in:
Sam Atkins 2025-05-19 12:32:37 +01:00 committed by Shannon Booth
commit c4bcbff59a
Notes: github-actions[bot] 2025-05-19 22:15:29 +00:00
3 changed files with 7 additions and 4 deletions

View file

@ -96,7 +96,7 @@ private:
// https://www.w3.org/TR/mediaqueries-4/#mq-features // https://www.w3.org/TR/mediaqueries-4/#mq-features
class MediaFeature final : public BooleanExpression { class MediaFeature final : public BooleanExpression {
public: public:
enum class Comparison { enum class Comparison : u8 {
Equal, Equal,
LessThan, LessThan,
LessThanOrEqual, LessThanOrEqual,
@ -151,7 +151,7 @@ public:
virtual void dump(StringBuilder&, int indent_levels = 0) const override; virtual void dump(StringBuilder&, int indent_levels = 0) const override;
private: private:
enum class Type { enum class Type : u8 {
IsTrue, IsTrue,
ExactValue, ExactValue,
MinValue, MinValue,

View file

@ -310,7 +310,7 @@ class URLStyleValue;
class VisualViewport; class VisualViewport;
enum class Keyword; enum class Keyword;
enum class MediaFeatureID; enum class MediaFeatureID : u8;
enum class PropertyID; enum class PropertyID;
struct BackgroundLayerData; struct BackgroundLayerData;

View file

@ -42,6 +42,9 @@ ErrorOr<void> generate_header_file(JsonObject& media_feature_data, Core::File& f
{ {
StringBuilder builder; StringBuilder builder;
SourceGenerator generator { builder }; SourceGenerator generator { builder };
generator.set("media_feature_id_underlying_type", underlying_type_for_enum(media_feature_data.size()));
generator.append(R"~~~(#pragma once generator.append(R"~~~(#pragma once
#include <AK/StringView.h> #include <AK/StringView.h>
@ -58,7 +61,7 @@ enum class MediaFeatureValueType {
Resolution, Resolution,
}; };
enum class MediaFeatureID {)~~~"); enum class MediaFeatureID : @media_feature_id_underlying_type@ {)~~~");
media_feature_data.for_each_member([&](auto& name, auto&) { media_feature_data.for_each_member([&](auto& name, auto&) {
auto member_generator = generator.fork(); auto member_generator = generator.fork();