diff --git a/Cargo.lock b/Cargo.lock index 1c77452770..c623624220 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -473,9 +473,11 @@ dependencies = [ name = "boa_icu_provider" version = "0.16.0" dependencies = [ + "icu_casemapping", "icu_collections", "icu_datagen", "icu_normalizer", + "icu_properties", "icu_provider", "icu_provider_adapters", "icu_provider_blob", @@ -525,13 +527,15 @@ version = "0.16.0" dependencies = [ "bitflags 2.2.1", "boa_ast", + "boa_icu_provider", "boa_interner", "boa_macros", "boa_profiler", - "boa_unicode", "fast-float", + "icu_properties", "num-bigint", "num-traits", + "once_cell", "regress", "rustc-hash", ] diff --git a/boa_icu_provider/Cargo.toml b/boa_icu_provider/Cargo.toml index 1c9fd239e3..9980e2f816 100644 --- a/boa_icu_provider/Cargo.toml +++ b/boa_icu_provider/Cargo.toml @@ -14,22 +14,26 @@ rust-version.workspace = true [dependencies] icu_provider = { version = "1.2.0", features = ["serde", "sync"] } -icu_provider_blob = "1.2.0" -icu_provider_adapters = { version = "1.2.0", features = ["serde"] } icu_collections = "1.2.0" icu_normalizer = "1.2.0" +icu_properties = "1.2.0" zerovec = "0.9.4" icu_datagen = { version = "1.2.3", optional = true } -once_cell = {version = "1.17.1", default-features = false, features = ["critical-section"], optional = true } +icu_provider_blob = { version = "1.2.0", optional = true } +icu_provider_adapters = { version = "1.2.0", features = ["serde"], optional = true } +once_cell = { version = "1.17.1", default-features = false, features = [ + "critical-section", +], optional = true } log = { version = "0.4.17", optional = true } simple_logger = { version = "4.1.0", optional = true } +icu_casemapping = { version = "0.7.2", optional = true } [features] default = ["std"] -full = ["dep:once_cell"] +full = ["dep:once_cell", "dep:icu_provider_blob", "dep:icu_provider_adapters"] std = ["once_cell?/std"] -bin = ["dep:icu_datagen", "dep:simple_logger", "dep:log"] +bin = ["dep:icu_datagen", "dep:simple_logger", "dep:log", "dep:icu_casemapping"] [[bin]] name = "boa-datagen" diff --git a/boa_icu_provider/data/icudata.postcard b/boa_icu_provider/data/icudata.postcard index 150e6ae3ff..2e4e181bdf 100644 Binary files a/boa_icu_provider/data/icudata.postcard and b/boa_icu_provider/data/icudata.postcard differ diff --git a/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data b/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data deleted file mode 100644 index e4aaf50f5d..0000000000 --- a/boa_icu_provider/data/min/fallback/likelysubtags_v1/und.rs.data +++ /dev/null @@ -1,66 +0,0 @@ -::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1 { - l2s: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap::from_parts_unchecked( - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"am\0ar\0as\0be\0bg\0bgcbhobn\0brxchrcv\0doiel\0fa\0gu\0he\0hi\0hy\0ja\0ka\0kk\0km\0kn\0ko\0kokks\0ky\0lo\0maimk\0ml\0mn\0mnimr\0my\0ne\0or\0pa\0ps\0rajru\0sa\0satsd\0si\0sr\0ta\0te\0tg\0th\0ti\0tt\0uk\0ur\0yuezh\0") - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"EthiArabBengCyrlCyrlDevaDevaBengDevaCherCyrlDevaGrekArabGujrHebrDevaArmnJpanGeorCyrlKhmrKndaKoreDevaArabCyrlLaooDevaCyrlMlymCyrlBengDevaMymrDevaOryaGuruArabDevaCyrlDevaOlckArabSinhCyrlTamlTeluCyrlThaiEthiCyrlCyrlArabHantHans") - }, - ) - }, - lr2s: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap2d::from_parts_unchecked( - unsafe { - ::zerovec::ZeroVec::from_bytes_unchecked( - b"az\0ha\0kk\0ky\0mn\0ms\0pa\0sd\0sr\0tg\0uz\0yuezh\0", - ) - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x03\0\0\0\x05\0\0\0\t\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x0F\0\0\0\x13\0\0\0\x14\0\0\0\x16\0\0\0\x17\0\0\0&\0\0\0") - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"IQ\0IR\0RU\0CM\0SD\0AF\0CN\0IR\0MN\0CN\0TR\0CN\0CC\0PK\0IN\0ME\0RO\0RU\0TR\0PK\0AF\0CN\0CN\0AU\0BN\0GB\0GF\0HK\0ID\0MO\0PA\0PF\0PH\0SR\0TH\0TW\0US\0VN\0") - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"ArabArabCyrlArabArabArabArabArabArabArabLatnMongArabArabDevaLatnLatnLatnLatnArabArabCyrlHansHantHantHantHantHantHantHantHantHantHantHantHantHantHantHant") - }, - ) - }, - l2r: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap::from_parts_unchecked( - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"af\0am\0ar\0as\0astaz\0be\0bg\0bgcbhobn\0br\0brxbs\0ca\0cebchrcs\0cv\0cy\0da\0de\0doidsbel\0en\0es\0et\0eu\0fa\0ff\0fi\0filfo\0fr\0ga\0gd\0gl\0gu\0ha\0he\0hi\0hr\0hsbhu\0hy\0ia\0id\0ig\0is\0it\0ja\0jv\0ka\0keakgpkk\0km\0kn\0ko\0kokks\0ky\0lo\0lt\0lv\0maimi\0mk\0ml\0mn\0mnimr\0ms\0my\0ne\0nl\0nn\0no\0or\0pa\0pcmpl\0ps\0pt\0qu\0rajrm\0ro\0ru\0sa\0satsc\0sd\0si\0sk\0sl\0so\0sq\0sr\0su\0sv\0sw\0ta\0te\0tg\0th\0ti\0tk\0to\0tr\0tt\0uk\0ur\0uz\0vi\0wo\0xh\0yo\0yrlyuezh\0zu\0") - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"ZA\0ET\0EG\0IN\0ES\0AZ\0BY\0BG\0IN\0IN\0BD\0FR\0IN\0BA\0ES\0PH\0US\0CZ\0RU\0GB\0DK\0DE\0IN\0DE\0GR\0US\0ES\0EE\0ES\0IR\0SN\0FI\0PH\0FO\0FR\0IE\0GB\0ES\0IN\0NG\0IL\0IN\0HR\0DE\0HU\0AM\x00001ID\0NG\0IS\0IT\0JP\0ID\0GE\0CV\0BR\0KZ\0KH\0IN\0KR\0IN\0IN\0KG\0LA\0LT\0LV\0IN\0NZ\0MK\0IN\0MN\0IN\0IN\0MY\0MM\0NP\0NL\0NO\0NO\0IN\0IN\0NG\0PL\0AF\0BR\0PE\0IN\0CH\0RO\0RU\0IN\0IN\0IT\0PK\0LK\0SK\0SI\0SO\0AL\0RS\0ID\0SE\0TZ\0IN\0IN\0TJ\0TH\0ET\0TM\0TO\0TR\0RU\0UA\0PK\0UZ\0VN\0SN\0ZA\0NG\0BR\0HK\0CN\0ZA\0") - }, - ) - }, - ls2r: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap2d::from_parts_unchecked( - unsafe { - ::zerovec::ZeroVec::from_bytes_unchecked( - b"az\0en\0ff\0kk\0ky\0mn\0pa\0sd\0tg\0uz\0yuezh\0", - ) - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"\x01\0\0\0\x02\0\0\0\x03\0\0\0\x04\0\0\0\x06\0\0\0\x07\0\0\0\x08\0\0\0\x0B\0\0\0\x0C\0\0\0\r\0\0\0\x0E\0\0\0\x11\0\0\0") - }, - unsafe { - ::zerovec::ZeroVec::from_bytes_unchecked( - b"ArabShawAdlmArabArabLatnMongArabDevaKhojSindArabArabHansBopoHanbHant", - ) - }, - unsafe { - ::zerovec::ZeroVec::from_bytes_unchecked( - b"IR\0GB\0GN\0CN\0CN\0TR\0CN\0PK\0IN\0IN\0IN\0PK\0AF\0CN\0TW\0TW\0TW\0", - ) - }, - ) - }, -} diff --git a/boa_icu_provider/data/min/fallback/mod.rs b/boa_icu_provider/data/min/fallback/mod.rs deleted file mode 100644 index a485a5af64..0000000000 --- a/boa_icu_provider/data/min/fallback/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -// @generated -pub mod likelysubtags_v1; -pub mod parents_v1; -pub mod supplement; diff --git a/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data b/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data deleted file mode 100644 index a13646a0b9..0000000000 --- a/boa_icu_provider/data/min/fallback/parents_v1/und.rs.data +++ /dev/null @@ -1,13 +0,0 @@ -::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1 { - parents: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap::from_parts_unchecked( - unsafe { - :: zerovec :: VarZeroVec :: from_bytes_unchecked (b"\x84\0\0\0\0\0\x06\0\x0B\0\x10\0\x15\0\x1A\0\x1F\0$\0)\0.\x003\08\0=\0B\0G\0L\0Q\0V\0[\0`\0e\0j\0o\0t\0y\0~\0\x83\0\x88\0\x8D\0\x92\0\x97\0\x9C\0\xA1\0\xA6\0\xAB\0\xB0\0\xB5\0\xBA\0\xBF\0\xC4\0\xC9\0\xCE\0\xD3\0\xD8\0\xDD\0\xE2\0\xE7\0\xEC\0\xF1\0\xF6\0\xFB\0\0\x01\x05\x01\n\x01\x0F\x01\x14\x01\x19\x01\x1E\x01#\x01(\x01-\x012\x017\x01<\x01A\x01F\x01K\x01P\x01U\x01Z\x01_\x01d\x01i\x01n\x01s\x01x\x01}\x01\x82\x01\x87\x01\x8C\x01\x91\x01\x96\x01\x9B\x01\xA0\x01\xA5\x01\xAA\x01\xAF\x01\xB4\x01\xB9\x01\xBE\x01\xC3\x01\xC8\x01\xCD\x01\xD2\x01\xD7\x01\xDC\x01\xE1\x01\xE6\x01\xEB\x01\xF0\x01\xF5\x01\xFA\x01\xFF\x01\x04\x02\t\x02\x0E\x02\x13\x02\x18\x02\x1D\x02\"\x02'\x02,\x021\x026\x02;\x02@\x02G\x02I\x02K\x02M\x02R\x02W\x02\\\x02a\x02f\x02k\x02p\x02u\x02z\x02\x7F\x02\x84\x02\x89\x02en-150en-AGen-AIen-ATen-AUen-BBen-BEen-BMen-BSen-BWen-BZen-CCen-CHen-CKen-CMen-CXen-CYen-DEen-DGen-DKen-DMen-ERen-FIen-FJen-FKen-FMen-GBen-GDen-GGen-GHen-GIen-GMen-GYen-HKen-IEen-ILen-IMen-INen-IOen-JEen-JMen-KEen-KIen-KNen-KYen-LCen-LRen-LSen-MGen-MOen-MSen-MTen-MUen-MVen-MWen-MYen-NAen-NFen-NGen-NLen-NRen-NUen-NZen-PGen-PKen-PNen-PWen-RWen-SBen-SCen-SDen-SEen-SGen-SHen-SIen-SLen-SSen-SXen-SZen-TCen-TKen-TOen-TTen-TVen-TZen-UGen-VCen-VGen-VUen-WSen-ZAen-ZMen-ZWes-ARes-BOes-BRes-BZes-CLes-COes-CRes-CUes-DOes-ECes-GTes-HNes-MXes-NIes-PAes-PEes-PRes-PYes-SVes-USes-UYes-VEhi-Latnhtnbnnno-NOpt-AOpt-CHpt-CVpt-FRpt-GQpt-GWpt-LUpt-MOpt-MZpt-STpt-TLzh-Hant-MO") - }, - unsafe { - :: zerovec :: ZeroVec :: from_bytes_unchecked (b"en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01150en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001en\0\0\0\0\0\0\x01001es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419es\0\0\0\0\0\0\x01419en\0\0\0\0\0\0\x01IN\0fr\0\0\0\0\0\0\x01HT\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0no\0\0\0\0\0\0\0\0\0\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0pt\0\0\0\0\0\0\x01PT\0zh\0\x01Hant\x01HK\0") - }, - ) - }, -} diff --git a/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs b/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs deleted file mode 100644 index 9023647138..0000000000 --- a/boa_icu_provider/data/min/fallback/supplement/co_v1/mod.rs +++ /dev/null @@ -1,6 +0,0 @@ -// @generated -type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: CollationFallbackSupplementV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; -pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { - locale.is_empty().then(|| &UND) -} -static UND: DataStruct = include!("und.rs.data"); diff --git a/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data b/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data deleted file mode 100644 index 647f8f5160..0000000000 --- a/boa_icu_provider/data/min/fallback/supplement/co_v1/und.rs.data +++ /dev/null @@ -1,22 +0,0 @@ -::icu_provider_adapters::fallback::provider::LocaleFallbackSupplementV1 { - parents: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap::from_parts_unchecked( - unsafe { ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x01\0\0\0\0\0yue") }, - unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"zh\0\x01Hant\0\0\0\0") }, - ) - }, - unicode_extension_defaults: unsafe { - #[allow(unused_unsafe)] - ::zerovec::ZeroMap2d::from_parts_unchecked( - unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"co") }, - unsafe { ::zerovec::ZeroVec::from_bytes_unchecked(b"\x02\0\0\0") }, - unsafe { - ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x02\0zhzh-Hant") - }, - unsafe { - ::zerovec::VarZeroVec::from_bytes_unchecked(b"\x02\0\0\0\0\0\x06\0pinyinstroke") - }, - ) - }, -} diff --git a/boa_icu_provider/data/min/fallback/supplement/mod.rs b/boa_icu_provider/data/min/fallback/supplement/mod.rs deleted file mode 100644 index 62957134f0..0000000000 --- a/boa_icu_provider/data/min/fallback/supplement/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -// @generated -pub mod co_v1; diff --git a/boa_icu_provider/data/min/mod.rs b/boa_icu_provider/data/min/mod.rs index 67f02ec16c..389dc5a708 100644 --- a/boa_icu_provider/data/min/mod.rs +++ b/boa_icu_provider/data/min/mod.rs @@ -1,9 +1,9 @@ // @generated #[clippy::msrv = "1.61"] -mod fallback; -#[clippy::msrv = "1.61"] mod normalizer; #[clippy::msrv = "1.61"] +mod props; +#[clippy::msrv = "1.61"] use icu_provider::prelude::*; /// Implement [`DataProvider`] on the given struct using the data /// hardcoded in this module. This allows the struct to be used with @@ -96,63 +96,29 @@ macro_rules! impl_data_provider { } } #[clippy::msrv = "1.61"] - impl DataProvider<::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker> for $provider { - fn load( - &self, - req: DataRequest, - ) -> Result, DataError> { - fallback::supplement::co_v1::lookup(&req.locale) - .map(zerofrom::ZeroFrom::zero_from) - .map(DataPayload::from_owned) - .map(|payload| DataResponse { - metadata: Default::default(), - payload: Some(payload), - }) - .ok_or_else(|| { - DataErrorKind::MissingLocale.with_req( - ::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY, - req, - ) - }) - } - } - #[clippy::msrv = "1.61"] - impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker> for $provider { - fn load( - &self, - req: DataRequest, - ) -> Result, DataError> { - fallback::likelysubtags_v1::lookup(&req.locale) + impl DataProvider<::icu_properties::provider::IdContinueV1Marker> for $provider { + fn load(&self, req: DataRequest) -> Result, DataError> { + props::idc_v1::lookup(&req.locale) .map(zerofrom::ZeroFrom::zero_from) .map(DataPayload::from_owned) .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload), }) - .ok_or_else(|| { - DataErrorKind::MissingLocale.with_req( - ::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY, - req, - ) - }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_properties::provider::IdContinueV1Marker::KEY, req)) } } #[clippy::msrv = "1.61"] - impl DataProvider<::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker> for $provider { - fn load( - &self, - req: DataRequest, - ) -> Result, DataError> { - fallback::parents_v1::lookup(&req.locale) + impl DataProvider<::icu_properties::provider::IdStartV1Marker> for $provider { + fn load(&self, req: DataRequest) -> Result, DataError> { + props::ids_v1::lookup(&req.locale) .map(zerofrom::ZeroFrom::zero_from) .map(DataPayload::from_owned) .map(|payload| DataResponse { metadata: Default::default(), payload: Some(payload), }) - .ok_or_else(|| { - DataErrorKind::MissingLocale.with_req(::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY, req) - }) + .ok_or_else(|| DataErrorKind::MissingLocale.with_req(::icu_properties::provider::IdStartV1Marker::KEY, req)) } } }; @@ -185,21 +151,16 @@ macro_rules! impl_any_provider { ::icu_normalizer::provider::CompatibilityDecompositionSupplementV1Marker::KEY.hashed(); const COMPATIBILITYDECOMPOSITIONTABLESV1MARKER: ::icu_provider::DataKeyHash = ::icu_normalizer::provider::CompatibilityDecompositionTablesV1Marker::KEY.hashed(); - const COLLATIONFALLBACKSUPPLEMENTV1MARKER: ::icu_provider::DataKeyHash = - ::icu_provider_adapters::fallback::provider::CollationFallbackSupplementV1Marker::KEY.hashed(); - const LOCALEFALLBACKLIKELYSUBTAGSV1MARKER: ::icu_provider::DataKeyHash = - ::icu_provider_adapters::fallback::provider::LocaleFallbackLikelySubtagsV1Marker::KEY.hashed(); - const LOCALEFALLBACKPARENTSV1MARKER: ::icu_provider::DataKeyHash = - ::icu_provider_adapters::fallback::provider::LocaleFallbackParentsV1Marker::KEY.hashed(); + const IDCONTINUEV1MARKER: ::icu_provider::DataKeyHash = ::icu_properties::provider::IdContinueV1Marker::KEY.hashed(); + const IDSTARTV1MARKER: ::icu_provider::DataKeyHash = ::icu_properties::provider::IdStartV1Marker::KEY.hashed(); match key.hashed() { CANONICALCOMPOSITIONSV1MARKER => normalizer::comp_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), CANONICALDECOMPOSITIONDATAV1MARKER => normalizer::nfd_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), CANONICALDECOMPOSITIONTABLESV1MARKER => normalizer::nfdex_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), COMPATIBILITYDECOMPOSITIONSUPPLEMENTV1MARKER => normalizer::nfkd_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), COMPATIBILITYDECOMPOSITIONTABLESV1MARKER => normalizer::nfkdex_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), - COLLATIONFALLBACKSUPPLEMENTV1MARKER => fallback::supplement::co_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), - LOCALEFALLBACKLIKELYSUBTAGSV1MARKER => fallback::likelysubtags_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), - LOCALEFALLBACKPARENTSV1MARKER => fallback::parents_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + IDCONTINUEV1MARKER => props::idc_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), + IDSTARTV1MARKER => props::ids_v1::lookup(&req.locale).map(AnyPayload::from_static_ref), _ => return Err(DataErrorKind::MissingDataKey.with_req(key, req)), } .map(|payload| AnyResponse { diff --git a/boa_icu_provider/data/min/fallback/parents_v1/mod.rs b/boa_icu_provider/data/min/props/idc_v1/mod.rs similarity index 54% rename from boa_icu_provider/data/min/fallback/parents_v1/mod.rs rename to boa_icu_provider/data/min/props/idc_v1/mod.rs index ce04af868a..9425b8089d 100644 --- a/boa_icu_provider/data/min/fallback/parents_v1/mod.rs +++ b/boa_icu_provider/data/min/props/idc_v1/mod.rs @@ -1,5 +1,6 @@ // @generated -type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackParentsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +type DataStruct = + <::icu_properties::provider::IdContinueV1Marker as ::icu_provider::DataMarker>::Yokeable; pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { locale.is_empty().then(|| &UND) } diff --git a/boa_icu_provider/data/min/props/idc_v1/und.rs.data b/boa_icu_provider/data/min/props/idc_v1/und.rs.data new file mode 100644 index 0000000000..ca4385685a --- /dev/null +++ b/boa_icu_provider/data/min/props/idc_v1/und.rs.data @@ -0,0 +1,9 @@ +::icu_properties::provider::PropertyCodePointSetV1::InversionList(unsafe { + #[allow(unused_unsafe)] + ::icu_collections::codepointinvlist::CodePointInversionList::from_parts_unchecked( + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"0\0\0\0:\0\0\0A\0\0\0[\0\0\0_\0\0\0`\0\0\0a\0\0\0{\0\0\0\xAA\0\0\0\xAB\0\0\0\xB5\0\0\0\xB6\0\0\0\xB7\0\0\0\xB8\0\0\0\xBA\0\0\0\xBB\0\0\0\xC0\0\0\0\xD7\0\0\0\xD8\0\0\0\xF7\0\0\0\xF8\0\0\0\xC2\x02\0\0\xC6\x02\0\0\xD2\x02\0\0\xE0\x02\0\0\xE5\x02\0\0\xEC\x02\0\0\xED\x02\0\0\xEE\x02\0\0\xEF\x02\0\0\0\x03\0\0u\x03\0\0v\x03\0\0x\x03\0\0z\x03\0\0~\x03\0\0\x7F\x03\0\0\x80\x03\0\0\x86\x03\0\0\x8B\x03\0\0\x8C\x03\0\0\x8D\x03\0\0\x8E\x03\0\0\xA2\x03\0\0\xA3\x03\0\0\xF6\x03\0\0\xF7\x03\0\0\x82\x04\0\0\x83\x04\0\0\x88\x04\0\0\x8A\x04\0\x000\x05\0\x001\x05\0\0W\x05\0\0Y\x05\0\0Z\x05\0\0`\x05\0\0\x89\x05\0\0\x91\x05\0\0\xBE\x05\0\0\xBF\x05\0\0\xC0\x05\0\0\xC1\x05\0\0\xC3\x05\0\0\xC4\x05\0\0\xC6\x05\0\0\xC7\x05\0\0\xC8\x05\0\0\xD0\x05\0\0\xEB\x05\0\0\xEF\x05\0\0\xF3\x05\0\0\x10\x06\0\0\x1B\x06\0\0 \x06\0\0j\x06\0\0n\x06\0\0\xD4\x06\0\0\xD5\x06\0\0\xDD\x06\0\0\xDF\x06\0\0\xE9\x06\0\0\xEA\x06\0\0\xFD\x06\0\0\xFF\x06\0\0\0\x07\0\0\x10\x07\0\0K\x07\0\0M\x07\0\0\xB2\x07\0\0\xC0\x07\0\0\xF6\x07\0\0\xFA\x07\0\0\xFB\x07\0\0\xFD\x07\0\0\xFE\x07\0\0\0\x08\0\0.\x08\0\0@\x08\0\0\\\x08\0\0`\x08\0\0k\x08\0\0p\x08\0\0\x88\x08\0\0\x89\x08\0\0\x8F\x08\0\0\x98\x08\0\0\xE2\x08\0\0\xE3\x08\0\0d\t\0\0f\t\0\0p\t\0\0q\t\0\0\x84\t\0\0\x85\t\0\0\x8D\t\0\0\x8F\t\0\0\x91\t\0\0\x93\t\0\0\xA9\t\0\0\xAA\t\0\0\xB1\t\0\0\xB2\t\0\0\xB3\t\0\0\xB6\t\0\0\xBA\t\0\0\xBC\t\0\0\xC5\t\0\0\xC7\t\0\0\xC9\t\0\0\xCB\t\0\0\xCF\t\0\0\xD7\t\0\0\xD8\t\0\0\xDC\t\0\0\xDE\t\0\0\xDF\t\0\0\xE4\t\0\0\xE6\t\0\0\xF2\t\0\0\xFC\t\0\0\xFD\t\0\0\xFE\t\0\0\xFF\t\0\0\x01\n\0\0\x04\n\0\0\x05\n\0\0\x0B\n\0\0\x0F\n\0\0\x11\n\0\0\x13\n\0\0)\n\0\0*\n\0\x001\n\0\x002\n\0\x004\n\0\x005\n\0\x007\n\0\08\n\0\0:\n\0\0<\n\0\0=\n\0\0>\n\0\0C\n\0\0G\n\0\0I\n\0\0K\n\0\0N\n\0\0Q\n\0\0R\n\0\0Y\n\0\0]\n\0\0^\n\0\0_\n\0\0f\n\0\0v\n\0\0\x81\n\0\0\x84\n\0\0\x85\n\0\0\x8E\n\0\0\x8F\n\0\0\x92\n\0\0\x93\n\0\0\xA9\n\0\0\xAA\n\0\0\xB1\n\0\0\xB2\n\0\0\xB4\n\0\0\xB5\n\0\0\xBA\n\0\0\xBC\n\0\0\xC6\n\0\0\xC7\n\0\0\xCA\n\0\0\xCB\n\0\0\xCE\n\0\0\xD0\n\0\0\xD1\n\0\0\xE0\n\0\0\xE4\n\0\0\xE6\n\0\0\xF0\n\0\0\xF9\n\0\0\0\x0B\0\0\x01\x0B\0\0\x04\x0B\0\0\x05\x0B\0\0\r\x0B\0\0\x0F\x0B\0\0\x11\x0B\0\0\x13\x0B\0\0)\x0B\0\0*\x0B\0\x001\x0B\0\x002\x0B\0\x004\x0B\0\x005\x0B\0\0:\x0B\0\0<\x0B\0\0E\x0B\0\0G\x0B\0\0I\x0B\0\0K\x0B\0\0N\x0B\0\0U\x0B\0\0X\x0B\0\0\\\x0B\0\0^\x0B\0\0_\x0B\0\0d\x0B\0\0f\x0B\0\0p\x0B\0\0q\x0B\0\0r\x0B\0\0\x82\x0B\0\0\x84\x0B\0\0\x85\x0B\0\0\x8B\x0B\0\0\x8E\x0B\0\0\x91\x0B\0\0\x92\x0B\0\0\x96\x0B\0\0\x99\x0B\0\0\x9B\x0B\0\0\x9C\x0B\0\0\x9D\x0B\0\0\x9E\x0B\0\0\xA0\x0B\0\0\xA3\x0B\0\0\xA5\x0B\0\0\xA8\x0B\0\0\xAB\x0B\0\0\xAE\x0B\0\0\xBA\x0B\0\0\xBE\x0B\0\0\xC3\x0B\0\0\xC6\x0B\0\0\xC9\x0B\0\0\xCA\x0B\0\0\xCE\x0B\0\0\xD0\x0B\0\0\xD1\x0B\0\0\xD7\x0B\0\0\xD8\x0B\0\0\xE6\x0B\0\0\xF0\x0B\0\0\0\x0C\0\0\r\x0C\0\0\x0E\x0C\0\0\x11\x0C\0\0\x12\x0C\0\0)\x0C\0\0*\x0C\0\0:\x0C\0\0<\x0C\0\0E\x0C\0\0F\x0C\0\0I\x0C\0\0J\x0C\0\0N\x0C\0\0U\x0C\0\0W\x0C\0\0X\x0C\0\0[\x0C\0\0]\x0C\0\0^\x0C\0\0`\x0C\0\0d\x0C\0\0f\x0C\0\0p\x0C\0\0\x80\x0C\0\0\x84\x0C\0\0\x85\x0C\0\0\x8D\x0C\0\0\x8E\x0C\0\0\x91\x0C\0\0\x92\x0C\0\0\xA9\x0C\0\0\xAA\x0C\0\0\xB4\x0C\0\0\xB5\x0C\0\0\xBA\x0C\0\0\xBC\x0C\0\0\xC5\x0C\0\0\xC6\x0C\0\0\xC9\x0C\0\0\xCA\x0C\0\0\xCE\x0C\0\0\xD5\x0C\0\0\xD7\x0C\0\0\xDD\x0C\0\0\xDF\x0C\0\0\xE0\x0C\0\0\xE4\x0C\0\0\xE6\x0C\0\0\xF0\x0C\0\0\xF1\x0C\0\0\xF4\x0C\0\0\0\r\0\0\r\r\0\0\x0E\r\0\0\x11\r\0\0\x12\r\0\0E\r\0\0F\r\0\0I\r\0\0J\r\0\0O\r\0\0T\r\0\0X\r\0\0_\r\0\0d\r\0\0f\r\0\0p\r\0\0z\r\0\0\x80\r\0\0\x81\r\0\0\x84\r\0\0\x85\r\0\0\x97\r\0\0\x9A\r\0\0\xB2\r\0\0\xB3\r\0\0\xBC\r\0\0\xBD\r\0\0\xBE\r\0\0\xC0\r\0\0\xC7\r\0\0\xCA\r\0\0\xCB\r\0\0\xCF\r\0\0\xD5\r\0\0\xD6\r\0\0\xD7\r\0\0\xD8\r\0\0\xE0\r\0\0\xE6\r\0\0\xF0\r\0\0\xF2\r\0\0\xF4\r\0\0\x01\x0E\0\0;\x0E\0\0@\x0E\0\0O\x0E\0\0P\x0E\0\0Z\x0E\0\0\x81\x0E\0\0\x83\x0E\0\0\x84\x0E\0\0\x85\x0E\0\0\x86\x0E\0\0\x8B\x0E\0\0\x8C\x0E\0\0\xA4\x0E\0\0\xA5\x0E\0\0\xA6\x0E\0\0\xA7\x0E\0\0\xBE\x0E\0\0\xC0\x0E\0\0\xC5\x0E\0\0\xC6\x0E\0\0\xC7\x0E\0\0\xC8\x0E\0\0\xCF\x0E\0\0\xD0\x0E\0\0\xDA\x0E\0\0\xDC\x0E\0\0\xE0\x0E\0\0\0\x0F\0\0\x01\x0F\0\0\x18\x0F\0\0\x1A\x0F\0\0 \x0F\0\0*\x0F\0\x005\x0F\0\x006\x0F\0\x007\x0F\0\08\x0F\0\09\x0F\0\0:\x0F\0\0>\x0F\0\0H\x0F\0\0I\x0F\0\0m\x0F\0\0q\x0F\0\0\x85\x0F\0\0\x86\x0F\0\0\x98\x0F\0\0\x99\x0F\0\0\xBD\x0F\0\0\xC6\x0F\0\0\xC7\x0F\0\0\0\x10\0\0J\x10\0\0P\x10\0\0\x9E\x10\0\0\xA0\x10\0\0\xC6\x10\0\0\xC7\x10\0\0\xC8\x10\0\0\xCD\x10\0\0\xCE\x10\0\0\xD0\x10\0\0\xFB\x10\0\0\xFC\x10\0\0I\x12\0\0J\x12\0\0N\x12\0\0P\x12\0\0W\x12\0\0X\x12\0\0Y\x12\0\0Z\x12\0\0^\x12\0\0`\x12\0\0\x89\x12\0\0\x8A\x12\0\0\x8E\x12\0\0\x90\x12\0\0\xB1\x12\0\0\xB2\x12\0\0\xB6\x12\0\0\xB8\x12\0\0\xBF\x12\0\0\xC0\x12\0\0\xC1\x12\0\0\xC2\x12\0\0\xC6\x12\0\0\xC8\x12\0\0\xD7\x12\0\0\xD8\x12\0\0\x11\x13\0\0\x12\x13\0\0\x16\x13\0\0\x18\x13\0\0[\x13\0\0]\x13\0\0`\x13\0\0i\x13\0\0r\x13\0\0\x80\x13\0\0\x90\x13\0\0\xA0\x13\0\0\xF6\x13\0\0\xF8\x13\0\0\xFE\x13\0\0\x01\x14\0\0m\x16\0\0o\x16\0\0\x80\x16\0\0\x81\x16\0\0\x9B\x16\0\0\xA0\x16\0\0\xEB\x16\0\0\xEE\x16\0\0\xF9\x16\0\0\0\x17\0\0\x16\x17\0\0\x1F\x17\0\x005\x17\0\0@\x17\0\0T\x17\0\0`\x17\0\0m\x17\0\0n\x17\0\0q\x17\0\0r\x17\0\0t\x17\0\0\x80\x17\0\0\xD4\x17\0\0\xD7\x17\0\0\xD8\x17\0\0\xDC\x17\0\0\xDE\x17\0\0\xE0\x17\0\0\xEA\x17\0\0\x0B\x18\0\0\x0E\x18\0\0\x0F\x18\0\0\x1A\x18\0\0 \x18\0\0y\x18\0\0\x80\x18\0\0\xAB\x18\0\0\xB0\x18\0\0\xF6\x18\0\0\0\x19\0\0\x1F\x19\0\0 \x19\0\0,\x19\0\x000\x19\0\0<\x19\0\0F\x19\0\0n\x19\0\0p\x19\0\0u\x19\0\0\x80\x19\0\0\xAC\x19\0\0\xB0\x19\0\0\xCA\x19\0\0\xD0\x19\0\0\xDB\x19\0\0\0\x1A\0\0\x1C\x1A\0\0 \x1A\0\0_\x1A\0\0`\x1A\0\0}\x1A\0\0\x7F\x1A\0\0\x8A\x1A\0\0\x90\x1A\0\0\x9A\x1A\0\0\xA7\x1A\0\0\xA8\x1A\0\0\xB0\x1A\0\0\xBE\x1A\0\0\xBF\x1A\0\0\xCF\x1A\0\0\0\x1B\0\0M\x1B\0\0P\x1B\0\0Z\x1B\0\0k\x1B\0\0t\x1B\0\0\x80\x1B\0\0\xF4\x1B\0\0\0\x1C\0\08\x1C\0\0@\x1C\0\0J\x1C\0\0M\x1C\0\0~\x1C\0\0\x80\x1C\0\0\x89\x1C\0\0\x90\x1C\0\0\xBB\x1C\0\0\xBD\x1C\0\0\xC0\x1C\0\0\xD0\x1C\0\0\xD3\x1C\0\0\xD4\x1C\0\0\xFB\x1C\0\0\0\x1D\0\0\x16\x1F\0\0\x18\x1F\0\0\x1E\x1F\0\0 \x1F\0\0F\x1F\0\0H\x1F\0\0N\x1F\0\0P\x1F\0\0X\x1F\0\0Y\x1F\0\0Z\x1F\0\0[\x1F\0\0\\\x1F\0\0]\x1F\0\0^\x1F\0\0_\x1F\0\0~\x1F\0\0\x80\x1F\0\0\xB5\x1F\0\0\xB6\x1F\0\0\xBD\x1F\0\0\xBE\x1F\0\0\xBF\x1F\0\0\xC2\x1F\0\0\xC5\x1F\0\0\xC6\x1F\0\0\xCD\x1F\0\0\xD0\x1F\0\0\xD4\x1F\0\0\xD6\x1F\0\0\xDC\x1F\0\0\xE0\x1F\0\0\xED\x1F\0\0\xF2\x1F\0\0\xF5\x1F\0\0\xF6\x1F\0\0\xFD\x1F\0\0? \0\0A \0\0T \0\0U \0\0q \0\0r \0\0\x7F \0\0\x80 \0\0\x90 \0\0\x9D \0\0\xD0 \0\0\xDD \0\0\xE1 \0\0\xE2 \0\0\xE5 \0\0\xF1 \0\0\x02!\0\0\x03!\0\0\x07!\0\0\x08!\0\0\n!\0\0\x14!\0\0\x15!\0\0\x16!\0\0\x18!\0\0\x1E!\0\0$!\0\0%!\0\0&!\0\0'!\0\0(!\0\0)!\0\0*!\0\0:!\0\0\xFB\0\0?\xFB\0\0@\xFB\0\0B\xFB\0\0C\xFB\0\0E\xFB\0\0F\xFB\0\0\xB2\xFB\0\0\xD3\xFB\0\0>\xFD\0\0P\xFD\0\0\x90\xFD\0\0\x92\xFD\0\0\xC8\xFD\0\0\xF0\xFD\0\0\xFC\xFD\0\0\0\xFE\0\0\x10\xFE\0\0 \xFE\0\x000\xFE\0\x003\xFE\0\x005\xFE\0\0M\xFE\0\0P\xFE\0\0p\xFE\0\0u\xFE\0\0v\xFE\0\0\xFD\xFE\0\0\x10\xFF\0\0\x1A\xFF\0\0!\xFF\0\0;\xFF\0\0?\xFF\0\0@\xFF\0\0A\xFF\0\0[\xFF\0\0f\xFF\0\0\xBF\xFF\0\0\xC2\xFF\0\0\xC8\xFF\0\0\xCA\xFF\0\0\xD0\xFF\0\0\xD2\xFF\0\0\xD8\xFF\0\0\xDA\xFF\0\0\xDD\xFF\0\0\0\0\x01\0\x0C\0\x01\0\r\0\x01\0'\0\x01\0(\0\x01\0;\0\x01\0<\0\x01\0>\0\x01\0?\0\x01\0N\0\x01\0P\0\x01\0^\0\x01\0\x80\0\x01\0\xFB\0\x01\0@\x01\x01\0u\x01\x01\0\xFD\x01\x01\0\xFE\x01\x01\0\x80\x02\x01\0\x9D\x02\x01\0\xA0\x02\x01\0\xD1\x02\x01\0\xE0\x02\x01\0\xE1\x02\x01\0\0\x03\x01\0 \x03\x01\0-\x03\x01\0K\x03\x01\0P\x03\x01\0{\x03\x01\0\x80\x03\x01\0\x9E\x03\x01\0\xA0\x03\x01\0\xC4\x03\x01\0\xC8\x03\x01\0\xD0\x03\x01\0\xD1\x03\x01\0\xD6\x03\x01\0\0\x04\x01\0\x9E\x04\x01\0\xA0\x04\x01\0\xAA\x04\x01\0\xB0\x04\x01\0\xD4\x04\x01\0\xD8\x04\x01\0\xFC\x04\x01\0\0\x05\x01\0(\x05\x01\x000\x05\x01\0d\x05\x01\0p\x05\x01\0{\x05\x01\0|\x05\x01\0\x8B\x05\x01\0\x8C\x05\x01\0\x93\x05\x01\0\x94\x05\x01\0\x96\x05\x01\0\x97\x05\x01\0\xA2\x05\x01\0\xA3\x05\x01\0\xB2\x05\x01\0\xB3\x05\x01\0\xBA\x05\x01\0\xBB\x05\x01\0\xBD\x05\x01\0\0\x06\x01\x007\x07\x01\0@\x07\x01\0V\x07\x01\0`\x07\x01\0h\x07\x01\0\x80\x07\x01\0\x86\x07\x01\0\x87\x07\x01\0\xB1\x07\x01\0\xB2\x07\x01\0\xBB\x07\x01\0\0\x08\x01\0\x06\x08\x01\0\x08\x08\x01\0\t\x08\x01\0\n\x08\x01\x006\x08\x01\x007\x08\x01\09\x08\x01\0<\x08\x01\0=\x08\x01\0?\x08\x01\0V\x08\x01\0`\x08\x01\0w\x08\x01\0\x80\x08\x01\0\x9F\x08\x01\0\xE0\x08\x01\0\xF3\x08\x01\0\xF4\x08\x01\0\xF6\x08\x01\0\0\t\x01\0\x16\t\x01\0 \t\x01\0:\t\x01\0\x80\t\x01\0\xB8\t\x01\0\xBE\t\x01\0\xC0\t\x01\0\0\n\x01\0\x04\n\x01\0\x05\n\x01\0\x07\n\x01\0\x0C\n\x01\0\x14\n\x01\0\x15\n\x01\0\x18\n\x01\0\x19\n\x01\x006\n\x01\08\n\x01\0;\n\x01\0?\n\x01\0@\n\x01\0`\n\x01\0}\n\x01\0\x80\n\x01\0\x9D\n\x01\0\xC0\n\x01\0\xC8\n\x01\0\xC9\n\x01\0\xE7\n\x01\0\0\x0B\x01\x006\x0B\x01\0@\x0B\x01\0V\x0B\x01\0`\x0B\x01\0s\x0B\x01\0\x80\x0B\x01\0\x92\x0B\x01\0\0\x0C\x01\0I\x0C\x01\0\x80\x0C\x01\0\xB3\x0C\x01\0\xC0\x0C\x01\0\xF3\x0C\x01\0\0\r\x01\0(\r\x01\x000\r\x01\0:\r\x01\0\x80\x0E\x01\0\xAA\x0E\x01\0\xAB\x0E\x01\0\xAD\x0E\x01\0\xB0\x0E\x01\0\xB2\x0E\x01\0\xFD\x0E\x01\0\x1D\x0F\x01\0'\x0F\x01\0(\x0F\x01\x000\x0F\x01\0Q\x0F\x01\0p\x0F\x01\0\x86\x0F\x01\0\xB0\x0F\x01\0\xC5\x0F\x01\0\xE0\x0F\x01\0\xF7\x0F\x01\0\0\x10\x01\0G\x10\x01\0f\x10\x01\0v\x10\x01\0\x7F\x10\x01\0\xBB\x10\x01\0\xC2\x10\x01\0\xC3\x10\x01\0\xD0\x10\x01\0\xE9\x10\x01\0\xF0\x10\x01\0\xFA\x10\x01\0\0\x11\x01\x005\x11\x01\x006\x11\x01\0@\x11\x01\0D\x11\x01\0H\x11\x01\0P\x11\x01\0t\x11\x01\0v\x11\x01\0w\x11\x01\0\x80\x11\x01\0\xC5\x11\x01\0\xC9\x11\x01\0\xCD\x11\x01\0\xCE\x11\x01\0\xDB\x11\x01\0\xDC\x11\x01\0\xDD\x11\x01\0\0\x12\x01\0\x12\x12\x01\0\x13\x12\x01\08\x12\x01\0>\x12\x01\0B\x12\x01\0\x80\x12\x01\0\x87\x12\x01\0\x88\x12\x01\0\x89\x12\x01\0\x8A\x12\x01\0\x8E\x12\x01\0\x8F\x12\x01\0\x9E\x12\x01\0\x9F\x12\x01\0\xA9\x12\x01\0\xB0\x12\x01\0\xEB\x12\x01\0\xF0\x12\x01\0\xFA\x12\x01\0\0\x13\x01\0\x04\x13\x01\0\x05\x13\x01\0\r\x13\x01\0\x0F\x13\x01\0\x11\x13\x01\0\x13\x13\x01\0)\x13\x01\0*\x13\x01\x001\x13\x01\x002\x13\x01\x004\x13\x01\x005\x13\x01\0:\x13\x01\0;\x13\x01\0E\x13\x01\0G\x13\x01\0I\x13\x01\0K\x13\x01\0N\x13\x01\0P\x13\x01\0Q\x13\x01\0W\x13\x01\0X\x13\x01\0]\x13\x01\0d\x13\x01\0f\x13\x01\0m\x13\x01\0p\x13\x01\0u\x13\x01\0\0\x14\x01\0K\x14\x01\0P\x14\x01\0Z\x14\x01\0^\x14\x01\0b\x14\x01\0\x80\x14\x01\0\xC6\x14\x01\0\xC7\x14\x01\0\xC8\x14\x01\0\xD0\x14\x01\0\xDA\x14\x01\0\x80\x15\x01\0\xB6\x15\x01\0\xB8\x15\x01\0\xC1\x15\x01\0\xD8\x15\x01\0\xDE\x15\x01\0\0\x16\x01\0A\x16\x01\0D\x16\x01\0E\x16\x01\0P\x16\x01\0Z\x16\x01\0\x80\x16\x01\0\xB9\x16\x01\0\xC0\x16\x01\0\xCA\x16\x01\0\0\x17\x01\0\x1B\x17\x01\0\x1D\x17\x01\0,\x17\x01\x000\x17\x01\0:\x17\x01\0@\x17\x01\0G\x17\x01\0\0\x18\x01\0;\x18\x01\0\xA0\x18\x01\0\xEA\x18\x01\0\xFF\x18\x01\0\x07\x19\x01\0\t\x19\x01\0\n\x19\x01\0\x0C\x19\x01\0\x14\x19\x01\0\x15\x19\x01\0\x17\x19\x01\0\x18\x19\x01\x006\x19\x01\x007\x19\x01\09\x19\x01\0;\x19\x01\0D\x19\x01\0P\x19\x01\0Z\x19\x01\0\xA0\x19\x01\0\xA8\x19\x01\0\xAA\x19\x01\0\xD8\x19\x01\0\xDA\x19\x01\0\xE2\x19\x01\0\xE3\x19\x01\0\xE5\x19\x01\0\0\x1A\x01\0?\x1A\x01\0G\x1A\x01\0H\x1A\x01\0P\x1A\x01\0\x9A\x1A\x01\0\x9D\x1A\x01\0\x9E\x1A\x01\0\xB0\x1A\x01\0\xF9\x1A\x01\0\0\x1C\x01\0\t\x1C\x01\0\n\x1C\x01\x007\x1C\x01\08\x1C\x01\0A\x1C\x01\0P\x1C\x01\0Z\x1C\x01\0r\x1C\x01\0\x90\x1C\x01\0\x92\x1C\x01\0\xA8\x1C\x01\0\xA9\x1C\x01\0\xB7\x1C\x01\0\0\x1D\x01\0\x07\x1D\x01\0\x08\x1D\x01\0\n\x1D\x01\0\x0B\x1D\x01\x007\x1D\x01\0:\x1D\x01\0;\x1D\x01\0<\x1D\x01\0>\x1D\x01\0?\x1D\x01\0H\x1D\x01\0P\x1D\x01\0Z\x1D\x01\0`\x1D\x01\0f\x1D\x01\0g\x1D\x01\0i\x1D\x01\0j\x1D\x01\0\x8F\x1D\x01\0\x90\x1D\x01\0\x92\x1D\x01\0\x93\x1D\x01\0\x99\x1D\x01\0\xA0\x1D\x01\0\xAA\x1D\x01\0\xE0\x1E\x01\0\xF7\x1E\x01\0\0\x1F\x01\0\x11\x1F\x01\0\x12\x1F\x01\0;\x1F\x01\0>\x1F\x01\0C\x1F\x01\0P\x1F\x01\0Z\x1F\x01\0\xB0\x1F\x01\0\xB1\x1F\x01\0\0 \x01\0\x9A#\x01\0\0$\x01\0o$\x01\0\x80$\x01\0D%\x01\0\x90/\x01\0\xF1/\x01\0\x000\x01\x0004\x01\0@4\x01\0V4\x01\0\0D\x01\0GF\x01\0\0h\x01\09j\x01\0@j\x01\0_j\x01\0`j\x01\0jj\x01\0pj\x01\0\xBFj\x01\0\xC0j\x01\0\xCAj\x01\0\xD0j\x01\0\xEEj\x01\0\xF0j\x01\0\xF5j\x01\0\0k\x01\x007k\x01\0@k\x01\0Dk\x01\0Pk\x01\0Zk\x01\0ck\x01\0xk\x01\0}k\x01\0\x90k\x01\0@n\x01\0\x80n\x01\0\0o\x01\0Ko\x01\0Oo\x01\0\x88o\x01\0\x8Fo\x01\0\xA0o\x01\0\xE0o\x01\0\xE2o\x01\0\xE3o\x01\0\xE5o\x01\0\xF0o\x01\0\xF2o\x01\0\0p\x01\0\xF8\x87\x01\0\0\x88\x01\0\xD6\x8C\x01\0\0\x8D\x01\0\t\x8D\x01\0\xF0\xAF\x01\0\xF4\xAF\x01\0\xF5\xAF\x01\0\xFC\xAF\x01\0\xFD\xAF\x01\0\xFF\xAF\x01\0\0\xB0\x01\0#\xB1\x01\x002\xB1\x01\x003\xB1\x01\0P\xB1\x01\0S\xB1\x01\0U\xB1\x01\0V\xB1\x01\0d\xB1\x01\0h\xB1\x01\0p\xB1\x01\0\xFC\xB2\x01\0\0\xBC\x01\0k\xBC\x01\0p\xBC\x01\0}\xBC\x01\0\x80\xBC\x01\0\x89\xBC\x01\0\x90\xBC\x01\0\x9A\xBC\x01\0\x9D\xBC\x01\0\x9F\xBC\x01\0\0\xCF\x01\0.\xCF\x01\x000\xCF\x01\0G\xCF\x01\0e\xD1\x01\0j\xD1\x01\0m\xD1\x01\0s\xD1\x01\0{\xD1\x01\0\x83\xD1\x01\0\x85\xD1\x01\0\x8C\xD1\x01\0\xAA\xD1\x01\0\xAE\xD1\x01\0B\xD2\x01\0E\xD2\x01\0\0\xD4\x01\0U\xD4\x01\0V\xD4\x01\0\x9D\xD4\x01\0\x9E\xD4\x01\0\xA0\xD4\x01\0\xA2\xD4\x01\0\xA3\xD4\x01\0\xA5\xD4\x01\0\xA7\xD4\x01\0\xA9\xD4\x01\0\xAD\xD4\x01\0\xAE\xD4\x01\0\xBA\xD4\x01\0\xBB\xD4\x01\0\xBC\xD4\x01\0\xBD\xD4\x01\0\xC4\xD4\x01\0\xC5\xD4\x01\0\x06\xD5\x01\0\x07\xD5\x01\0\x0B\xD5\x01\0\r\xD5\x01\0\x15\xD5\x01\0\x16\xD5\x01\0\x1D\xD5\x01\0\x1E\xD5\x01\0:\xD5\x01\0;\xD5\x01\0?\xD5\x01\0@\xD5\x01\0E\xD5\x01\0F\xD5\x01\0G\xD5\x01\0J\xD5\x01\0Q\xD5\x01\0R\xD5\x01\0\xA6\xD6\x01\0\xA8\xD6\x01\0\xC1\xD6\x01\0\xC2\xD6\x01\0\xDB\xD6\x01\0\xDC\xD6\x01\0\xFB\xD6\x01\0\xFC\xD6\x01\0\x15\xD7\x01\0\x16\xD7\x01\x005\xD7\x01\x006\xD7\x01\0O\xD7\x01\0P\xD7\x01\0o\xD7\x01\0p\xD7\x01\0\x89\xD7\x01\0\x8A\xD7\x01\0\xA9\xD7\x01\0\xAA\xD7\x01\0\xC3\xD7\x01\0\xC4\xD7\x01\0\xCC\xD7\x01\0\xCE\xD7\x01\0\0\xD8\x01\0\0\xDA\x01\x007\xDA\x01\0;\xDA\x01\0m\xDA\x01\0u\xDA\x01\0v\xDA\x01\0\x84\xDA\x01\0\x85\xDA\x01\0\x9B\xDA\x01\0\xA0\xDA\x01\0\xA1\xDA\x01\0\xB0\xDA\x01\0\0\xDF\x01\0\x1F\xDF\x01\0%\xDF\x01\0+\xDF\x01\0\0\xE0\x01\0\x07\xE0\x01\0\x08\xE0\x01\0\x19\xE0\x01\0\x1B\xE0\x01\0\"\xE0\x01\0#\xE0\x01\0%\xE0\x01\0&\xE0\x01\0+\xE0\x01\x000\xE0\x01\0n\xE0\x01\0\x8F\xE0\x01\0\x90\xE0\x01\0\0\xE1\x01\0-\xE1\x01\x000\xE1\x01\0>\xE1\x01\0@\xE1\x01\0J\xE1\x01\0N\xE1\x01\0O\xE1\x01\0\x90\xE2\x01\0\xAF\xE2\x01\0\xC0\xE2\x01\0\xFA\xE2\x01\0\xD0\xE4\x01\0\xFA\xE4\x01\0\xE0\xE7\x01\0\xE7\xE7\x01\0\xE8\xE7\x01\0\xEC\xE7\x01\0\xED\xE7\x01\0\xEF\xE7\x01\0\xF0\xE7\x01\0\xFF\xE7\x01\0\0\xE8\x01\0\xC5\xE8\x01\0\xD0\xE8\x01\0\xD7\xE8\x01\0\0\xE9\x01\0L\xE9\x01\0P\xE9\x01\0Z\xE9\x01\0\0\xEE\x01\0\x04\xEE\x01\0\x05\xEE\x01\0 \xEE\x01\0!\xEE\x01\0#\xEE\x01\0$\xEE\x01\0%\xEE\x01\0'\xEE\x01\0(\xEE\x01\0)\xEE\x01\x003\xEE\x01\x004\xEE\x01\08\xEE\x01\09\xEE\x01\0:\xEE\x01\0;\xEE\x01\0<\xEE\x01\0B\xEE\x01\0C\xEE\x01\0G\xEE\x01\0H\xEE\x01\0I\xEE\x01\0J\xEE\x01\0K\xEE\x01\0L\xEE\x01\0M\xEE\x01\0P\xEE\x01\0Q\xEE\x01\0S\xEE\x01\0T\xEE\x01\0U\xEE\x01\0W\xEE\x01\0X\xEE\x01\0Y\xEE\x01\0Z\xEE\x01\0[\xEE\x01\0\\\xEE\x01\0]\xEE\x01\0^\xEE\x01\0_\xEE\x01\0`\xEE\x01\0a\xEE\x01\0c\xEE\x01\0d\xEE\x01\0e\xEE\x01\0g\xEE\x01\0k\xEE\x01\0l\xEE\x01\0s\xEE\x01\0t\xEE\x01\0x\xEE\x01\0y\xEE\x01\0}\xEE\x01\0~\xEE\x01\0\x7F\xEE\x01\0\x80\xEE\x01\0\x8A\xEE\x01\0\x8B\xEE\x01\0\x9C\xEE\x01\0\xA1\xEE\x01\0\xA4\xEE\x01\0\xA5\xEE\x01\0\xAA\xEE\x01\0\xAB\xEE\x01\0\xBC\xEE\x01\0\xF0\xFB\x01\0\xFA\xFB\x01\0\0\0\x02\0\xE0\xA6\x02\0\0\xA7\x02\0:\xB7\x02\0@\xB7\x02\0\x1E\xB8\x02\0 \xB8\x02\0\xA2\xCE\x02\0\xB0\xCE\x02\0\xE1\xEB\x02\0\0\xF8\x02\0\x1E\xFA\x02\0\0\0\x03\0K\x13\x03\0P\x13\x03\0\xB0#\x03\0\0\x01\x0E\0\xF0\x01\x0E\0") + }, + 139482usize, + ) +}) diff --git a/boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs b/boa_icu_provider/data/min/props/ids_v1/mod.rs similarity index 53% rename from boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs rename to boa_icu_provider/data/min/props/ids_v1/mod.rs index 57f7496dcf..9f6890f24f 100644 --- a/boa_icu_provider/data/min/fallback/likelysubtags_v1/mod.rs +++ b/boa_icu_provider/data/min/props/ids_v1/mod.rs @@ -1,5 +1,6 @@ // @generated -type DataStruct = < :: icu_provider_adapters :: fallback :: provider :: LocaleFallbackLikelySubtagsV1Marker as :: icu_provider :: DataMarker > :: Yokeable ; +type DataStruct = + <::icu_properties::provider::IdStartV1Marker as ::icu_provider::DataMarker>::Yokeable; pub fn lookup(locale: &icu_provider::DataLocale) -> Option<&'static DataStruct> { locale.is_empty().then(|| &UND) } diff --git a/boa_icu_provider/data/min/props/ids_v1/und.rs.data b/boa_icu_provider/data/min/props/ids_v1/und.rs.data new file mode 100644 index 0000000000..fc8129df04 --- /dev/null +++ b/boa_icu_provider/data/min/props/ids_v1/und.rs.data @@ -0,0 +1,9 @@ +::icu_properties::provider::PropertyCodePointSetV1::InversionList(unsafe { + #[allow(unused_unsafe)] + ::icu_collections::codepointinvlist::CodePointInversionList::from_parts_unchecked( + unsafe { + :: zerovec :: ZeroVec :: from_bytes_unchecked (b"A\0\0\0[\0\0\0a\0\0\0{\0\0\0\xAA\0\0\0\xAB\0\0\0\xB5\0\0\0\xB6\0\0\0\xBA\0\0\0\xBB\0\0\0\xC0\0\0\0\xD7\0\0\0\xD8\0\0\0\xF7\0\0\0\xF8\0\0\0\xC2\x02\0\0\xC6\x02\0\0\xD2\x02\0\0\xE0\x02\0\0\xE5\x02\0\0\xEC\x02\0\0\xED\x02\0\0\xEE\x02\0\0\xEF\x02\0\0p\x03\0\0u\x03\0\0v\x03\0\0x\x03\0\0z\x03\0\0~\x03\0\0\x7F\x03\0\0\x80\x03\0\0\x86\x03\0\0\x87\x03\0\0\x88\x03\0\0\x8B\x03\0\0\x8C\x03\0\0\x8D\x03\0\0\x8E\x03\0\0\xA2\x03\0\0\xA3\x03\0\0\xF6\x03\0\0\xF7\x03\0\0\x82\x04\0\0\x8A\x04\0\x000\x05\0\x001\x05\0\0W\x05\0\0Y\x05\0\0Z\x05\0\0`\x05\0\0\x89\x05\0\0\xD0\x05\0\0\xEB\x05\0\0\xEF\x05\0\0\xF3\x05\0\0 \x06\0\0K\x06\0\0n\x06\0\0p\x06\0\0q\x06\0\0\xD4\x06\0\0\xD5\x06\0\0\xD6\x06\0\0\xE5\x06\0\0\xE7\x06\0\0\xEE\x06\0\0\xF0\x06\0\0\xFA\x06\0\0\xFD\x06\0\0\xFF\x06\0\0\0\x07\0\0\x10\x07\0\0\x11\x07\0\0\x12\x07\0\x000\x07\0\0M\x07\0\0\xA6\x07\0\0\xB1\x07\0\0\xB2\x07\0\0\xCA\x07\0\0\xEB\x07\0\0\xF4\x07\0\0\xF6\x07\0\0\xFA\x07\0\0\xFB\x07\0\0\0\x08\0\0\x16\x08\0\0\x1A\x08\0\0\x1B\x08\0\0$\x08\0\0%\x08\0\0(\x08\0\0)\x08\0\0@\x08\0\0Y\x08\0\0`\x08\0\0k\x08\0\0p\x08\0\0\x88\x08\0\0\x89\x08\0\0\x8F\x08\0\0\xA0\x08\0\0\xCA\x08\0\0\x04\t\0\0:\t\0\0=\t\0\0>\t\0\0P\t\0\0Q\t\0\0X\t\0\0b\t\0\0q\t\0\0\x81\t\0\0\x85\t\0\0\x8D\t\0\0\x8F\t\0\0\x91\t\0\0\x93\t\0\0\xA9\t\0\0\xAA\t\0\0\xB1\t\0\0\xB2\t\0\0\xB3\t\0\0\xB6\t\0\0\xBA\t\0\0\xBD\t\0\0\xBE\t\0\0\xCE\t\0\0\xCF\t\0\0\xDC\t\0\0\xDE\t\0\0\xDF\t\0\0\xE2\t\0\0\xF0\t\0\0\xF2\t\0\0\xFC\t\0\0\xFD\t\0\0\x05\n\0\0\x0B\n\0\0\x0F\n\0\0\x11\n\0\0\x13\n\0\0)\n\0\0*\n\0\x001\n\0\x002\n\0\x004\n\0\x005\n\0\x007\n\0\08\n\0\0:\n\0\0Y\n\0\0]\n\0\0^\n\0\0_\n\0\0r\n\0\0u\n\0\0\x85\n\0\0\x8E\n\0\0\x8F\n\0\0\x92\n\0\0\x93\n\0\0\xA9\n\0\0\xAA\n\0\0\xB1\n\0\0\xB2\n\0\0\xB4\n\0\0\xB5\n\0\0\xBA\n\0\0\xBD\n\0\0\xBE\n\0\0\xD0\n\0\0\xD1\n\0\0\xE0\n\0\0\xE2\n\0\0\xF9\n\0\0\xFA\n\0\0\x05\x0B\0\0\r\x0B\0\0\x0F\x0B\0\0\x11\x0B\0\0\x13\x0B\0\0)\x0B\0\0*\x0B\0\x001\x0B\0\x002\x0B\0\x004\x0B\0\x005\x0B\0\0:\x0B\0\0=\x0B\0\0>\x0B\0\0\\\x0B\0\0^\x0B\0\0_\x0B\0\0b\x0B\0\0q\x0B\0\0r\x0B\0\0\x83\x0B\0\0\x84\x0B\0\0\x85\x0B\0\0\x8B\x0B\0\0\x8E\x0B\0\0\x91\x0B\0\0\x92\x0B\0\0\x96\x0B\0\0\x99\x0B\0\0\x9B\x0B\0\0\x9C\x0B\0\0\x9D\x0B\0\0\x9E\x0B\0\0\xA0\x0B\0\0\xA3\x0B\0\0\xA5\x0B\0\0\xA8\x0B\0\0\xAB\x0B\0\0\xAE\x0B\0\0\xBA\x0B\0\0\xD0\x0B\0\0\xD1\x0B\0\0\x05\x0C\0\0\r\x0C\0\0\x0E\x0C\0\0\x11\x0C\0\0\x12\x0C\0\0)\x0C\0\0*\x0C\0\0:\x0C\0\0=\x0C\0\0>\x0C\0\0X\x0C\0\0[\x0C\0\0]\x0C\0\0^\x0C\0\0`\x0C\0\0b\x0C\0\0\x80\x0C\0\0\x81\x0C\0\0\x85\x0C\0\0\x8D\x0C\0\0\x8E\x0C\0\0\x91\x0C\0\0\x92\x0C\0\0\xA9\x0C\0\0\xAA\x0C\0\0\xB4\x0C\0\0\xB5\x0C\0\0\xBA\x0C\0\0\xBD\x0C\0\0\xBE\x0C\0\0\xDD\x0C\0\0\xDF\x0C\0\0\xE0\x0C\0\0\xE2\x0C\0\0\xF1\x0C\0\0\xF3\x0C\0\0\x04\r\0\0\r\r\0\0\x0E\r\0\0\x11\r\0\0\x12\r\0\0;\r\0\0=\r\0\0>\r\0\0N\r\0\0O\r\0\0T\r\0\0W\r\0\0_\r\0\0b\r\0\0z\r\0\0\x80\r\0\0\x85\r\0\0\x97\r\0\0\x9A\r\0\0\xB2\r\0\0\xB3\r\0\0\xBC\r\0\0\xBD\r\0\0\xBE\r\0\0\xC0\r\0\0\xC7\r\0\0\x01\x0E\0\x001\x0E\0\x002\x0E\0\x004\x0E\0\0@\x0E\0\0G\x0E\0\0\x81\x0E\0\0\x83\x0E\0\0\x84\x0E\0\0\x85\x0E\0\0\x86\x0E\0\0\x8B\x0E\0\0\x8C\x0E\0\0\xA4\x0E\0\0\xA5\x0E\0\0\xA6\x0E\0\0\xA7\x0E\0\0\xB1\x0E\0\0\xB2\x0E\0\0\xB4\x0E\0\0\xBD\x0E\0\0\xBE\x0E\0\0\xC0\x0E\0\0\xC5\x0E\0\0\xC6\x0E\0\0\xC7\x0E\0\0\xDC\x0E\0\0\xE0\x0E\0\0\0\x0F\0\0\x01\x0F\0\0@\x0F\0\0H\x0F\0\0I\x0F\0\0m\x0F\0\0\x88\x0F\0\0\x8D\x0F\0\0\0\x10\0\0+\x10\0\0?\x10\0\0@\x10\0\0P\x10\0\0V\x10\0\0Z\x10\0\0^\x10\0\0a\x10\0\0b\x10\0\0e\x10\0\0g\x10\0\0n\x10\0\0q\x10\0\0u\x10\0\0\x82\x10\0\0\x8E\x10\0\0\x8F\x10\0\0\xA0\x10\0\0\xC6\x10\0\0\xC7\x10\0\0\xC8\x10\0\0\xCD\x10\0\0\xCE\x10\0\0\xD0\x10\0\0\xFB\x10\0\0\xFC\x10\0\0I\x12\0\0J\x12\0\0N\x12\0\0P\x12\0\0W\x12\0\0X\x12\0\0Y\x12\0\0Z\x12\0\0^\x12\0\0`\x12\0\0\x89\x12\0\0\x8A\x12\0\0\x8E\x12\0\0\x90\x12\0\0\xB1\x12\0\0\xB2\x12\0\0\xB6\x12\0\0\xB8\x12\0\0\xBF\x12\0\0\xC0\x12\0\0\xC1\x12\0\0\xC2\x12\0\0\xC6\x12\0\0\xC8\x12\0\0\xD7\x12\0\0\xD8\x12\0\0\x11\x13\0\0\x12\x13\0\0\x16\x13\0\0\x18\x13\0\0[\x13\0\0\x80\x13\0\0\x90\x13\0\0\xA0\x13\0\0\xF6\x13\0\0\xF8\x13\0\0\xFE\x13\0\0\x01\x14\0\0m\x16\0\0o\x16\0\0\x80\x16\0\0\x81\x16\0\0\x9B\x16\0\0\xA0\x16\0\0\xEB\x16\0\0\xEE\x16\0\0\xF9\x16\0\0\0\x17\0\0\x12\x17\0\0\x1F\x17\0\x002\x17\0\0@\x17\0\0R\x17\0\0`\x17\0\0m\x17\0\0n\x17\0\0q\x17\0\0\x80\x17\0\0\xB4\x17\0\0\xD7\x17\0\0\xD8\x17\0\0\xDC\x17\0\0\xDD\x17\0\0 \x18\0\0y\x18\0\0\x80\x18\0\0\xA9\x18\0\0\xAA\x18\0\0\xAB\x18\0\0\xB0\x18\0\0\xF6\x18\0\0\0\x19\0\0\x1F\x19\0\0P\x19\0\0n\x19\0\0p\x19\0\0u\x19\0\0\x80\x19\0\0\xAC\x19\0\0\xB0\x19\0\0\xCA\x19\0\0\0\x1A\0\0\x17\x1A\0\0 \x1A\0\0U\x1A\0\0\xA7\x1A\0\0\xA8\x1A\0\0\x05\x1B\0\x004\x1B\0\0E\x1B\0\0M\x1B\0\0\x83\x1B\0\0\xA1\x1B\0\0\xAE\x1B\0\0\xB0\x1B\0\0\xBA\x1B\0\0\xE6\x1B\0\0\0\x1C\0\0$\x1C\0\0M\x1C\0\0P\x1C\0\0Z\x1C\0\0~\x1C\0\0\x80\x1C\0\0\x89\x1C\0\0\x90\x1C\0\0\xBB\x1C\0\0\xBD\x1C\0\0\xC0\x1C\0\0\xE9\x1C\0\0\xED\x1C\0\0\xEE\x1C\0\0\xF4\x1C\0\0\xF5\x1C\0\0\xF7\x1C\0\0\xFA\x1C\0\0\xFB\x1C\0\0\0\x1D\0\0\xC0\x1D\0\0\0\x1E\0\0\x16\x1F\0\0\x18\x1F\0\0\x1E\x1F\0\0 \x1F\0\0F\x1F\0\0H\x1F\0\0N\x1F\0\0P\x1F\0\0X\x1F\0\0Y\x1F\0\0Z\x1F\0\0[\x1F\0\0\\\x1F\0\0]\x1F\0\0^\x1F\0\0_\x1F\0\0~\x1F\0\0\x80\x1F\0\0\xB5\x1F\0\0\xB6\x1F\0\0\xBD\x1F\0\0\xBE\x1F\0\0\xBF\x1F\0\0\xC2\x1F\0\0\xC5\x1F\0\0\xC6\x1F\0\0\xCD\x1F\0\0\xD0\x1F\0\0\xD4\x1F\0\0\xD6\x1F\0\0\xDC\x1F\0\0\xE0\x1F\0\0\xED\x1F\0\0\xF2\x1F\0\0\xF5\x1F\0\0\xF6\x1F\0\0\xFD\x1F\0\0q \0\0r \0\0\x7F \0\0\x80 \0\0\x90 \0\0\x9D \0\0\x02!\0\0\x03!\0\0\x07!\0\0\x08!\0\0\n!\0\0\x14!\0\0\x15!\0\0\x16!\0\0\x18!\0\0\x1E!\0\0$!\0\0%!\0\0&!\0\0'!\0\0(!\0\0)!\0\0*!\0\0:!\0\0\xFB\0\0?\xFB\0\0@\xFB\0\0B\xFB\0\0C\xFB\0\0E\xFB\0\0F\xFB\0\0\xB2\xFB\0\0\xD3\xFB\0\0>\xFD\0\0P\xFD\0\0\x90\xFD\0\0\x92\xFD\0\0\xC8\xFD\0\0\xF0\xFD\0\0\xFC\xFD\0\0p\xFE\0\0u\xFE\0\0v\xFE\0\0\xFD\xFE\0\0!\xFF\0\0;\xFF\0\0A\xFF\0\0[\xFF\0\0f\xFF\0\0\xBF\xFF\0\0\xC2\xFF\0\0\xC8\xFF\0\0\xCA\xFF\0\0\xD0\xFF\0\0\xD2\xFF\0\0\xD8\xFF\0\0\xDA\xFF\0\0\xDD\xFF\0\0\0\0\x01\0\x0C\0\x01\0\r\0\x01\0'\0\x01\0(\0\x01\0;\0\x01\0<\0\x01\0>\0\x01\0?\0\x01\0N\0\x01\0P\0\x01\0^\0\x01\0\x80\0\x01\0\xFB\0\x01\0@\x01\x01\0u\x01\x01\0\x80\x02\x01\0\x9D\x02\x01\0\xA0\x02\x01\0\xD1\x02\x01\0\0\x03\x01\0 \x03\x01\0-\x03\x01\0K\x03\x01\0P\x03\x01\0v\x03\x01\0\x80\x03\x01\0\x9E\x03\x01\0\xA0\x03\x01\0\xC4\x03\x01\0\xC8\x03\x01\0\xD0\x03\x01\0\xD1\x03\x01\0\xD6\x03\x01\0\0\x04\x01\0\x9E\x04\x01\0\xB0\x04\x01\0\xD4\x04\x01\0\xD8\x04\x01\0\xFC\x04\x01\0\0\x05\x01\0(\x05\x01\x000\x05\x01\0d\x05\x01\0p\x05\x01\0{\x05\x01\0|\x05\x01\0\x8B\x05\x01\0\x8C\x05\x01\0\x93\x05\x01\0\x94\x05\x01\0\x96\x05\x01\0\x97\x05\x01\0\xA2\x05\x01\0\xA3\x05\x01\0\xB2\x05\x01\0\xB3\x05\x01\0\xBA\x05\x01\0\xBB\x05\x01\0\xBD\x05\x01\0\0\x06\x01\x007\x07\x01\0@\x07\x01\0V\x07\x01\0`\x07\x01\0h\x07\x01\0\x80\x07\x01\0\x86\x07\x01\0\x87\x07\x01\0\xB1\x07\x01\0\xB2\x07\x01\0\xBB\x07\x01\0\0\x08\x01\0\x06\x08\x01\0\x08\x08\x01\0\t\x08\x01\0\n\x08\x01\x006\x08\x01\x007\x08\x01\09\x08\x01\0<\x08\x01\0=\x08\x01\0?\x08\x01\0V\x08\x01\0`\x08\x01\0w\x08\x01\0\x80\x08\x01\0\x9F\x08\x01\0\xE0\x08\x01\0\xF3\x08\x01\0\xF4\x08\x01\0\xF6\x08\x01\0\0\t\x01\0\x16\t\x01\0 \t\x01\0:\t\x01\0\x80\t\x01\0\xB8\t\x01\0\xBE\t\x01\0\xC0\t\x01\0\0\n\x01\0\x01\n\x01\0\x10\n\x01\0\x14\n\x01\0\x15\n\x01\0\x18\n\x01\0\x19\n\x01\x006\n\x01\0`\n\x01\0}\n\x01\0\x80\n\x01\0\x9D\n\x01\0\xC0\n\x01\0\xC8\n\x01\0\xC9\n\x01\0\xE5\n\x01\0\0\x0B\x01\x006\x0B\x01\0@\x0B\x01\0V\x0B\x01\0`\x0B\x01\0s\x0B\x01\0\x80\x0B\x01\0\x92\x0B\x01\0\0\x0C\x01\0I\x0C\x01\0\x80\x0C\x01\0\xB3\x0C\x01\0\xC0\x0C\x01\0\xF3\x0C\x01\0\0\r\x01\0$\r\x01\0\x80\x0E\x01\0\xAA\x0E\x01\0\xB0\x0E\x01\0\xB2\x0E\x01\0\0\x0F\x01\0\x1D\x0F\x01\0'\x0F\x01\0(\x0F\x01\x000\x0F\x01\0F\x0F\x01\0p\x0F\x01\0\x82\x0F\x01\0\xB0\x0F\x01\0\xC5\x0F\x01\0\xE0\x0F\x01\0\xF7\x0F\x01\0\x03\x10\x01\08\x10\x01\0q\x10\x01\0s\x10\x01\0u\x10\x01\0v\x10\x01\0\x83\x10\x01\0\xB0\x10\x01\0\xD0\x10\x01\0\xE9\x10\x01\0\x03\x11\x01\0'\x11\x01\0D\x11\x01\0E\x11\x01\0G\x11\x01\0H\x11\x01\0P\x11\x01\0s\x11\x01\0v\x11\x01\0w\x11\x01\0\x83\x11\x01\0\xB3\x11\x01\0\xC1\x11\x01\0\xC5\x11\x01\0\xDA\x11\x01\0\xDB\x11\x01\0\xDC\x11\x01\0\xDD\x11\x01\0\0\x12\x01\0\x12\x12\x01\0\x13\x12\x01\0,\x12\x01\0?\x12\x01\0A\x12\x01\0\x80\x12\x01\0\x87\x12\x01\0\x88\x12\x01\0\x89\x12\x01\0\x8A\x12\x01\0\x8E\x12\x01\0\x8F\x12\x01\0\x9E\x12\x01\0\x9F\x12\x01\0\xA9\x12\x01\0\xB0\x12\x01\0\xDF\x12\x01\0\x05\x13\x01\0\r\x13\x01\0\x0F\x13\x01\0\x11\x13\x01\0\x13\x13\x01\0)\x13\x01\0*\x13\x01\x001\x13\x01\x002\x13\x01\x004\x13\x01\x005\x13\x01\0:\x13\x01\0=\x13\x01\0>\x13\x01\0P\x13\x01\0Q\x13\x01\0]\x13\x01\0b\x13\x01\0\0\x14\x01\x005\x14\x01\0G\x14\x01\0K\x14\x01\0_\x14\x01\0b\x14\x01\0\x80\x14\x01\0\xB0\x14\x01\0\xC4\x14\x01\0\xC6\x14\x01\0\xC7\x14\x01\0\xC8\x14\x01\0\x80\x15\x01\0\xAF\x15\x01\0\xD8\x15\x01\0\xDC\x15\x01\0\0\x16\x01\x000\x16\x01\0D\x16\x01\0E\x16\x01\0\x80\x16\x01\0\xAB\x16\x01\0\xB8\x16\x01\0\xB9\x16\x01\0\0\x17\x01\0\x1B\x17\x01\0@\x17\x01\0G\x17\x01\0\0\x18\x01\0,\x18\x01\0\xA0\x18\x01\0\xE0\x18\x01\0\xFF\x18\x01\0\x07\x19\x01\0\t\x19\x01\0\n\x19\x01\0\x0C\x19\x01\0\x14\x19\x01\0\x15\x19\x01\0\x17\x19\x01\0\x18\x19\x01\x000\x19\x01\0?\x19\x01\0@\x19\x01\0A\x19\x01\0B\x19\x01\0\xA0\x19\x01\0\xA8\x19\x01\0\xAA\x19\x01\0\xD1\x19\x01\0\xE1\x19\x01\0\xE2\x19\x01\0\xE3\x19\x01\0\xE4\x19\x01\0\0\x1A\x01\0\x01\x1A\x01\0\x0B\x1A\x01\x003\x1A\x01\0:\x1A\x01\0;\x1A\x01\0P\x1A\x01\0Q\x1A\x01\0\\\x1A\x01\0\x8A\x1A\x01\0\x9D\x1A\x01\0\x9E\x1A\x01\0\xB0\x1A\x01\0\xF9\x1A\x01\0\0\x1C\x01\0\t\x1C\x01\0\n\x1C\x01\0/\x1C\x01\0@\x1C\x01\0A\x1C\x01\0r\x1C\x01\0\x90\x1C\x01\0\0\x1D\x01\0\x07\x1D\x01\0\x08\x1D\x01\0\n\x1D\x01\0\x0B\x1D\x01\x001\x1D\x01\0F\x1D\x01\0G\x1D\x01\0`\x1D\x01\0f\x1D\x01\0g\x1D\x01\0i\x1D\x01\0j\x1D\x01\0\x8A\x1D\x01\0\x98\x1D\x01\0\x99\x1D\x01\0\xE0\x1E\x01\0\xF3\x1E\x01\0\x02\x1F\x01\0\x03\x1F\x01\0\x04\x1F\x01\0\x11\x1F\x01\0\x12\x1F\x01\x004\x1F\x01\0\xB0\x1F\x01\0\xB1\x1F\x01\0\0 \x01\0\x9A#\x01\0\0$\x01\0o$\x01\0\x80$\x01\0D%\x01\0\x90/\x01\0\xF1/\x01\0\x000\x01\x0004\x01\0A4\x01\0G4\x01\0\0D\x01\0GF\x01\0\0h\x01\09j\x01\0@j\x01\0_j\x01\0pj\x01\0\xBFj\x01\0\xD0j\x01\0\xEEj\x01\0\0k\x01\x000k\x01\0@k\x01\0Dk\x01\0ck\x01\0xk\x01\0}k\x01\0\x90k\x01\0@n\x01\0\x80n\x01\0\0o\x01\0Ko\x01\0Po\x01\0Qo\x01\0\x93o\x01\0\xA0o\x01\0\xE0o\x01\0\xE2o\x01\0\xE3o\x01\0\xE4o\x01\0\0p\x01\0\xF8\x87\x01\0\0\x88\x01\0\xD6\x8C\x01\0\0\x8D\x01\0\t\x8D\x01\0\xF0\xAF\x01\0\xF4\xAF\x01\0\xF5\xAF\x01\0\xFC\xAF\x01\0\xFD\xAF\x01\0\xFF\xAF\x01\0\0\xB0\x01\0#\xB1\x01\x002\xB1\x01\x003\xB1\x01\0P\xB1\x01\0S\xB1\x01\0U\xB1\x01\0V\xB1\x01\0d\xB1\x01\0h\xB1\x01\0p\xB1\x01\0\xFC\xB2\x01\0\0\xBC\x01\0k\xBC\x01\0p\xBC\x01\0}\xBC\x01\0\x80\xBC\x01\0\x89\xBC\x01\0\x90\xBC\x01\0\x9A\xBC\x01\0\0\xD4\x01\0U\xD4\x01\0V\xD4\x01\0\x9D\xD4\x01\0\x9E\xD4\x01\0\xA0\xD4\x01\0\xA2\xD4\x01\0\xA3\xD4\x01\0\xA5\xD4\x01\0\xA7\xD4\x01\0\xA9\xD4\x01\0\xAD\xD4\x01\0\xAE\xD4\x01\0\xBA\xD4\x01\0\xBB\xD4\x01\0\xBC\xD4\x01\0\xBD\xD4\x01\0\xC4\xD4\x01\0\xC5\xD4\x01\0\x06\xD5\x01\0\x07\xD5\x01\0\x0B\xD5\x01\0\r\xD5\x01\0\x15\xD5\x01\0\x16\xD5\x01\0\x1D\xD5\x01\0\x1E\xD5\x01\0:\xD5\x01\0;\xD5\x01\0?\xD5\x01\0@\xD5\x01\0E\xD5\x01\0F\xD5\x01\0G\xD5\x01\0J\xD5\x01\0Q\xD5\x01\0R\xD5\x01\0\xA6\xD6\x01\0\xA8\xD6\x01\0\xC1\xD6\x01\0\xC2\xD6\x01\0\xDB\xD6\x01\0\xDC\xD6\x01\0\xFB\xD6\x01\0\xFC\xD6\x01\0\x15\xD7\x01\0\x16\xD7\x01\x005\xD7\x01\x006\xD7\x01\0O\xD7\x01\0P\xD7\x01\0o\xD7\x01\0p\xD7\x01\0\x89\xD7\x01\0\x8A\xD7\x01\0\xA9\xD7\x01\0\xAA\xD7\x01\0\xC3\xD7\x01\0\xC4\xD7\x01\0\xCC\xD7\x01\0\0\xDF\x01\0\x1F\xDF\x01\0%\xDF\x01\0+\xDF\x01\x000\xE0\x01\0n\xE0\x01\0\0\xE1\x01\0-\xE1\x01\x007\xE1\x01\0>\xE1\x01\0N\xE1\x01\0O\xE1\x01\0\x90\xE2\x01\0\xAE\xE2\x01\0\xC0\xE2\x01\0\xEC\xE2\x01\0\xD0\xE4\x01\0\xEC\xE4\x01\0\xE0\xE7\x01\0\xE7\xE7\x01\0\xE8\xE7\x01\0\xEC\xE7\x01\0\xED\xE7\x01\0\xEF\xE7\x01\0\xF0\xE7\x01\0\xFF\xE7\x01\0\0\xE8\x01\0\xC5\xE8\x01\0\0\xE9\x01\0D\xE9\x01\0K\xE9\x01\0L\xE9\x01\0\0\xEE\x01\0\x04\xEE\x01\0\x05\xEE\x01\0 \xEE\x01\0!\xEE\x01\0#\xEE\x01\0$\xEE\x01\0%\xEE\x01\0'\xEE\x01\0(\xEE\x01\0)\xEE\x01\x003\xEE\x01\x004\xEE\x01\08\xEE\x01\09\xEE\x01\0:\xEE\x01\0;\xEE\x01\0<\xEE\x01\0B\xEE\x01\0C\xEE\x01\0G\xEE\x01\0H\xEE\x01\0I\xEE\x01\0J\xEE\x01\0K\xEE\x01\0L\xEE\x01\0M\xEE\x01\0P\xEE\x01\0Q\xEE\x01\0S\xEE\x01\0T\xEE\x01\0U\xEE\x01\0W\xEE\x01\0X\xEE\x01\0Y\xEE\x01\0Z\xEE\x01\0[\xEE\x01\0\\\xEE\x01\0]\xEE\x01\0^\xEE\x01\0_\xEE\x01\0`\xEE\x01\0a\xEE\x01\0c\xEE\x01\0d\xEE\x01\0e\xEE\x01\0g\xEE\x01\0k\xEE\x01\0l\xEE\x01\0s\xEE\x01\0t\xEE\x01\0x\xEE\x01\0y\xEE\x01\0}\xEE\x01\0~\xEE\x01\0\x7F\xEE\x01\0\x80\xEE\x01\0\x8A\xEE\x01\0\x8B\xEE\x01\0\x9C\xEE\x01\0\xA1\xEE\x01\0\xA4\xEE\x01\0\xA5\xEE\x01\0\xAA\xEE\x01\0\xAB\xEE\x01\0\xBC\xEE\x01\0\0\0\x02\0\xE0\xA6\x02\0\0\xA7\x02\0:\xB7\x02\0@\xB7\x02\0\x1E\xB8\x02\0 \xB8\x02\0\xA2\xCE\x02\0\xB0\xCE\x02\0\xE1\xEB\x02\0\0\xF8\x02\0\x1E\xFA\x02\0\0\0\x03\0K\x13\x03\0P\x13\x03\0\xB0#\x03\0") + }, + 136345usize, + ) +}) diff --git a/boa_icu_provider/data/min/props/mod.rs b/boa_icu_provider/data/min/props/mod.rs new file mode 100644 index 0000000000..31c1d0fe5a --- /dev/null +++ b/boa_icu_provider/data/min/props/mod.rs @@ -0,0 +1,3 @@ +// @generated +pub mod idc_v1; +pub mod ids_v1; diff --git a/boa_icu_provider/src/bin/datagen.rs b/boa_icu_provider/src/bin/datagen.rs index d6d8bdb3f1..d9482d0af4 100644 --- a/boa_icu_provider/src/bin/datagen.rs +++ b/boa_icu_provider/src/bin/datagen.rs @@ -6,19 +6,15 @@ use std::{error::Error, fs::File}; use boa_icu_provider::data_root; -use icu_datagen::{ - all_keys_with_experimental, datagen, BakedOptions, CldrLocaleSubset, Out, SourceData, -}; +use icu_casemapping::provider::CaseMappingV1Marker; +use icu_datagen::{all_keys, datagen, BakedOptions, CoverageLevel, Out, SourceData}; use icu_normalizer::provider::{ CanonicalCompositionsV1Marker, CanonicalDecompositionDataV1Marker, CanonicalDecompositionTablesV1Marker, CompatibilityDecompositionSupplementV1Marker, CompatibilityDecompositionTablesV1Marker, }; +use icu_properties::provider::{IdContinueV1Marker, IdStartV1Marker}; use icu_provider::KeyedDataMarker; -use icu_provider_adapters::fallback::provider::{ - CollationFallbackSupplementV1Marker, LocaleFallbackLikelySubtagsV1Marker, - LocaleFallbackParentsV1Marker, -}; fn main() -> Result<(), Box> { simple_logger::SimpleLogger::new() @@ -27,7 +23,7 @@ fn main() -> Result<(), Box> { .init()?; let source_data = SourceData::default() - .with_cldr_for_tag(SourceData::LATEST_TESTED_CLDR_TAG, CldrLocaleSubset::Modern)? + .with_cldr_for_tag(SourceData::LATEST_TESTED_CLDR_TAG, Default::default())? .with_icuexport_for_tag(SourceData::LATEST_TESTED_ICUEXPORT_TAG)? .with_collations(vec![String::from("search*")]); @@ -46,28 +42,26 @@ fn main() -> Result<(), Box> { }, }; + let locales = source_data.locales(&[CoverageLevel::Modern])?; + datagen( - None, + Some(&locales), &[ CanonicalDecompositionDataV1Marker::KEY, CanonicalDecompositionTablesV1Marker::KEY, CanonicalCompositionsV1Marker::KEY, CompatibilityDecompositionSupplementV1Marker::KEY, CompatibilityDecompositionTablesV1Marker::KEY, - LocaleFallbackLikelySubtagsV1Marker::KEY, - LocaleFallbackParentsV1Marker::KEY, - CollationFallbackSupplementV1Marker::KEY, + IdContinueV1Marker::KEY, + IdStartV1Marker::KEY, ], &source_data, [normalization_out].into(), )?; - datagen( - None, - &all_keys_with_experimental(), - &source_data, - [full_blob_out].into(), - )?; + let keys = &mut all_keys(); + keys.push(CaseMappingV1Marker::KEY); + datagen(Some(&locales), keys, &source_data, [full_blob_out].into())?; Ok(()) } diff --git a/boa_parser/Cargo.toml b/boa_parser/Cargo.toml index f1d64c3079..6dee00e9cd 100644 --- a/boa_parser/Cargo.toml +++ b/boa_parser/Cargo.toml @@ -15,13 +15,15 @@ boa_interner.workspace = true boa_macros.workspace = true boa_ast.workspace = true boa_profiler.workspace = true -boa_unicode.workspace = true +boa_icu_provider.workspace = true rustc-hash = "1.1.0" fast-float = "0.2.0" num-traits = "0.2.15" bitflags = "2.2.1" num-bigint = "0.4.3" regress = "0.5.0" +icu_properties = "1.2.0" +once_cell = "1.17.1" [features] annex-b = [] diff --git a/boa_parser/src/lexer/identifier.rs b/boa_parser/src/lexer/identifier.rs index 397643a197..845011e1f7 100644 --- a/boa_parser/src/lexer/identifier.rs +++ b/boa_parser/src/lexer/identifier.rs @@ -6,9 +6,35 @@ use crate::lexer::{ use boa_ast::{Keyword, Position, Span}; use boa_interner::Interner; use boa_profiler::Profiler; -use boa_unicode::UnicodeProperties; +use icu_properties::sets::{CodePointSetData, CodePointSetDataBorrowed}; +use once_cell::sync::Lazy; use std::io::Read; +/// List of codepoint sets that correspond to a specific [Unicode character property]. +/// +/// [Unicode character property]: https://unicode.org/reports/tr23/ +struct PropertySets { + id_start: CodePointSetDataBorrowed<'static>, + id_continue: CodePointSetDataBorrowed<'static>, +} + +/// Static `PropertySets` derived from Boa's default ICU4X data. +static PROPERTY_SETS: Lazy = Lazy::new(|| { + static ID_START: Lazy = Lazy::new(|| { + icu_properties::sets::load_id_start(&boa_icu_provider::minimal()) + .expect("data should be valid") + }); + static ID_CONTINUE: Lazy = Lazy::new(|| { + icu_properties::sets::load_id_continue(&boa_icu_provider::minimal()) + .expect("data should be valid") + }); + + PropertySets { + id_start: ID_START.as_borrowed(), + id_continue: ID_CONTINUE.as_borrowed(), + } +}); + /// Identifier lexing. /// /// More information: @@ -35,8 +61,7 @@ impl Identifier { /// /// [spec]: https://tc39.es/ecma262/#sec-names-and-keywords pub(super) fn is_identifier_start(ch: u32) -> bool { - matches!(ch, 0x0024 /* $ */ | 0x005F /* _ */) - || char::try_from(ch).map_or(false, char::is_id_start) + matches!(ch, 0x0024 /* $ */ | 0x005F /* _ */) || PROPERTY_SETS.id_start.contains32(ch) } /// Checks if a character is `IdentifierPart` as per ECMAScript standards. @@ -49,7 +74,7 @@ impl Identifier { matches!( ch, 0x0024 /* $ */ | 0x005F /* _ */ | 0x200C /* */ | 0x200D /* */ - ) || char::try_from(ch).map_or(false, char::is_id_continue) + ) || PROPERTY_SETS.id_continue.contains32(ch) } }