boa-dev / boa

Boa is an embeddable and experimental Javascript engine written in Rust. Currently, it has support for some of the language.
MIT License
4.82k stars 385 forks source link

Bump ICU4X to 1.5 and cleanup Intl #3868

Closed jedel1043 closed 1 month ago

jedel1043 commented 1 month ago

Some additional cleanups were made to the Intl services, since the ECMA-402 spec had editorial changes that hadn't been implemented.

Had to pin temporal_rs to the git repo until we publish a new version, but it would be better to fix the panics before doing so.

Removed some hacks that we had in place for locale resolution. We still have a small hack for Segmenter, but that will possibly be resolved in the future with locale-aware segmenters.

github-actions[bot] commented 1 month ago

Test262 conformance changes

Test result main count PR count difference
Total 50,731 50,771 +40
Passed 42,973 42,985 +12
Ignored 1,395 1,411 +16
Failed 6,363 6,375 +12
Panics 18 19 +1
Conformance 84.71% 84.66% -0.04%
Fixed tests (17): ``` test/intl402/Segmenter/constructor/supportedLocalesOf/basic.js (previously Failed) test/intl402/Segmenter/constructor/constructor/locales-valid.js (previously Failed) test/intl402/Locale/likely-subtags-grandfathered.js (previously Failed) test/intl402/Collator/supportedLocalesOf/basic.js (previously Failed) test/intl402/ListFormat/prototype/resolvedOptions/type.js (previously Failed) test/built-ins/Temporal/PlainDate/prototype/daysInMonth/basic.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-separators.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/plain-date.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-time-zone-annotation.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/plain-date-time.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-date-with-utc-offset.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/string.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-unknown-annotation.js (previously Failed) test/built-ins/Temporal/Calendar/prototype/daysInMonth/argument-string-calendar-annotation.js (previously Failed) test/built-ins/Temporal/PlainDateTime/prototype/daysInMonth/basic.js (previously Failed) test/built-ins/Object/groupBy/string.js (previously Failed) test/built-ins/Map/groupBy/string.js (previously Failed) ```
Broken tests (26): ``` test/built-ins/RegExp/property-escapes/generated/General_Category_-_Unassigned.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Letter.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Assigned.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Ideographic.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/IDS_Binary_Operator.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/XID_Start.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_-_Common.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Grapheme_Base.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/ID_Start.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Unified_Ideograph.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/ID_Continue.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Han.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other_Symbol.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Malayalam.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sharada.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Alphabetic.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Common.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/XID_Continue.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/General_Category_-_Letter.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/General_Category_-_Symbol.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_Extensions_-_Sinhala.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Sentence_Terminal.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/General_Category_-_Other.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/Script_-_Han.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji.js (previously Passed) test/built-ins/RegExp/property-escapes/generated/strings/RGI_Emoji_ZWJ_Sequence.js (previously Passed) ```
nekevss commented 1 month ago

Using the git repo makes sense to me. And may end up being a nice to work with for development purposes for the next little bit with all the changes coming down the pipeline to the proposal and the library (thinking the parser, duration rounding, the proposal changes).

We may want to just make sure to run a release for temporal_rs and move from the git repo to that release (EDIT: before the next boa release).

jedel1043 commented 1 month ago

Managed to fix all the Intl regressions. The remaining regressions are caused by new test changes for RegExp with CLDR 15.1

cc @raskad

raskad commented 1 month ago

The remaining regressions are caused by new test changes for RegExp with CLDR 15.1

I will look into updating regress with 15.1 :)