From cd763de28085b9b5cbbd97fc4a7906aaa2dd89b7 Mon Sep 17 00:00:00 2001 From: davidot Date: Sat, 27 Aug 2022 15:50:25 +0200 Subject: [PATCH] LibJS+LibUnicode: Move some constant arrays to a separate header Since LibUnicode depends on this data it used to include Intl/AbstractOperations which in turn includes a number of other LibJS headers. By moving this to its own header with minimal includes we can save on rebuilding LibUnicode for unrelated LibJS header changes. --- .../GenerateUnicodeNumberFormat.cpp | 2 +- .../LibJS/Runtime/Intl/AbstractOperations.h | 14 +--------- .../Runtime/Intl/SingleUnitIdentifiers.h | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 14 deletions(-) create mode 100644 Userland/Libraries/LibJS/Runtime/Intl/SingleUnitIdentifiers.h diff --git a/Meta/Lagom/Tools/CodeGenerators/LibUnicode/GenerateUnicodeNumberFormat.cpp b/Meta/Lagom/Tools/CodeGenerators/LibUnicode/GenerateUnicodeNumberFormat.cpp index 76243ce0df..159f97fcdb 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibUnicode/GenerateUnicodeNumberFormat.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibUnicode/GenerateUnicodeNumberFormat.cpp @@ -26,7 +26,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h b/Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h index e82900a51c..54eea467dc 100644 --- a/Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h +++ b/Userland/Libraries/LibJS/Runtime/Intl/AbstractOperations.h @@ -6,13 +6,13 @@ #pragma once -#include #include #include #include #include #include #include +#include #include #include #include @@ -77,18 +77,6 @@ struct PatternPartitionWithSource : public PatternPartition { StringView source; }; -// Table 2: Single units sanctioned for use in ECMAScript, https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers -constexpr auto sanctioned_single_unit_identifiers() -{ - return AK::Array { "acre"sv, "bit"sv, "byte"sv, "celsius"sv, "centimeter"sv, "day"sv, "degree"sv, "fahrenheit"sv, "fluid-ounce"sv, "foot"sv, "gallon"sv, "gigabit"sv, "gigabyte"sv, "gram"sv, "hectare"sv, "hour"sv, "inch"sv, "kilobit"sv, "kilobyte"sv, "kilogram"sv, "kilometer"sv, "liter"sv, "megabit"sv, "megabyte"sv, "meter"sv, "mile"sv, "mile-scandinavian"sv, "milliliter"sv, "millimeter"sv, "millisecond"sv, "minute"sv, "month"sv, "ounce"sv, "percent"sv, "petabyte"sv, "pound"sv, "second"sv, "stone"sv, "terabit"sv, "terabyte"sv, "week"sv, "yard"sv, "year"sv }; -} - -// Additional single units used in ECMAScript required by the Intl.DurationFormat proposal -constexpr auto extra_sanctioned_single_unit_identifiers() -{ - return AK::Array { "microsecond"sv, "nanosecond"sv }; -} - using StringOrBoolean = Variant; Optional is_structurally_valid_language_tag(StringView locale); diff --git a/Userland/Libraries/LibJS/Runtime/Intl/SingleUnitIdentifiers.h b/Userland/Libraries/LibJS/Runtime/Intl/SingleUnitIdentifiers.h new file mode 100644 index 0000000000..3a34ed18c5 --- /dev/null +++ b/Userland/Libraries/LibJS/Runtime/Intl/SingleUnitIdentifiers.h @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2022, the SerenityOS developers. + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include + +namespace JS::Intl { + +// Table 2: Single units sanctioned for use in ECMAScript, https://tc39.es/ecma402/#table-sanctioned-single-unit-identifiers +constexpr auto sanctioned_single_unit_identifiers() +{ + return AK::Array { "acre"sv, "bit"sv, "byte"sv, "celsius"sv, "centimeter"sv, "day"sv, "degree"sv, "fahrenheit"sv, "fluid-ounce"sv, "foot"sv, "gallon"sv, "gigabit"sv, "gigabyte"sv, "gram"sv, "hectare"sv, "hour"sv, "inch"sv, "kilobit"sv, "kilobyte"sv, "kilogram"sv, "kilometer"sv, "liter"sv, "megabit"sv, "megabyte"sv, "meter"sv, "mile"sv, "mile-scandinavian"sv, "milliliter"sv, "millimeter"sv, "millisecond"sv, "minute"sv, "month"sv, "ounce"sv, "percent"sv, "petabyte"sv, "pound"sv, "second"sv, "stone"sv, "terabit"sv, "terabyte"sv, "week"sv, "yard"sv, "year"sv }; +} + +// Additional single units used in ECMAScript required by the Intl.DurationFormat proposal +constexpr auto extra_sanctioned_single_unit_identifiers() +{ + return AK::Array { "microsecond"sv, "nanosecond"sv }; +} + +}