There are cases where the skeleton selection for pattern is broken, and it leads to broken behavior of all ICU-backed ECMA402 implementations.
For skeleton "MMMMMdd" ICU returns pattern "M月dd日", while for skeleton "Mdd" it returns "M/dd". That's a correct behavior.
But then, if we try to identify what skeleton the pattern is for, ICU returns "Mdd" skeleton for both patterns - "M月dd日" and "M/dd".
This makes it impossible for us to produce what's called an "options bag" in ECMA402 that is distinguishable between those two skeletons.
This, in turn, leads to a spec violation in because [1] disallows multiple formats with the same property/property value pairs: — [...] The value of this property must be an array of objects, each of which has a subset of the properties shown in Table 4, where each property must have one of the values specified for the property in Table 4. Multiple objects in an array may use the same subset of the properties as long as they have different values for the properties. [...] —
ICU should have enough data to be able to roundtrip from skeleton to pattern back to skeleton. May need to enhance the logic that derive skeleton from pattern to look at availableFormats.
Reference: https://bugzilla.mozilla.org/show_bug.cgi?id=1298794
There are cases where the skeleton selection for pattern is broken, and it leads to broken behavior of all ICU-backed ECMA402 implementations.
For skeleton "MMMMMdd" ICU returns pattern "M月dd日", while for skeleton "Mdd" it returns "M/dd". That's a correct behavior.
But then, if we try to identify what skeleton the pattern is for, ICU returns "Mdd" skeleton for both patterns - "M月dd日" and "M/dd".
This makes it impossible for us to produce what's called an "options bag" in ECMA402 that is distinguishable between those two skeletons.
This, in turn, leads to a spec violation in because [1] disallows multiple formats with the same property/property value pairs:
—
[...] The value of this property must be an array of objects, each of which has a subset of the properties shown in Table 4, where each property must have one of the values specified for the property in Table 4. Multiple objects in an array may use the same subset of the properties as long as they have different values for the properties. [...]
—
[1] https://tc39.github.io/ecma402/#sec-intl.datetimeformat-internal-slots