diff --git a/docs/design/features/hybrid-globalization.md b/docs/design/features/hybrid-globalization.md index 916bada554ebaa..afd8e588f427ad 100644 --- a/docs/design/features/hybrid-globalization.md +++ b/docs/design/features/hybrid-globalization.md @@ -246,6 +246,15 @@ Using `IgnoreNonSpace` for these two with `HybridGlobalization` off, also return new CultureInfo("de-DE").CompareInfo.IndexOf("strasse", "stra\u00DFe", 0, CompareOptions.IgnoreNonSpace); // 0 or -1 ``` +**Normalization** + +In HybridGlobalization all normalization types are available: +- `FormC`, +- `FormD`, +- `FormKC`, +- `FormKD`. + +This means, that `FormKC` and `FormKD` do not throw `PlatfromNotSupportedException`, as it happens in non-hybrid mode on Browser. ### OSX diff --git a/src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs b/src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs index cfe698fabcd980..5f3a0e7672c54b 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Globalization/Normalization.Icu.cs @@ -100,8 +100,12 @@ private static void ValidateArguments(string strInput, NormalizationForm normali { Debug.Assert(strInput != null); - - if (OperatingSystem.IsBrowser() && (normalizationForm == NormalizationForm.FormKC || normalizationForm == NormalizationForm.FormKD)) + bool notSupported = OperatingSystem.IsBrowser() && (normalizationForm == NormalizationForm.FormKC || normalizationForm == NormalizationForm.FormKD); +#if TARGET_BROWSER + if (!GlobalizationMode.Hybrid && notSupported) +#else + if (notSupported) +#endif { // Browser's ICU doesn't contain data needed for FormKC and FormKD throw new PlatformNotSupportedException(); diff --git a/src/libraries/System.Private.CoreLib/src/System/Text/NormalizationForm.cs b/src/libraries/System.Private.CoreLib/src/System/Text/NormalizationForm.cs index 3254499051a154..6c7e81bab36a79 100644 --- a/src/libraries/System.Private.CoreLib/src/System/Text/NormalizationForm.cs +++ b/src/libraries/System.Private.CoreLib/src/System/Text/NormalizationForm.cs @@ -9,9 +9,7 @@ public enum NormalizationForm { FormC = 1, FormD = 2, - [UnsupportedOSPlatform("browser")] FormKC = 5, - [UnsupportedOSPlatform("browser")] FormKD = 6 } }