Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 0a1408274330aa1999490790cee7d2b9b3b8ac2b https://github.com/WebKit/WebKit/commit/0a1408274330aa1999490790cee7d2b9b3b8ac2b Author: Yusuke Suzuki <ysuz...@apple.com> Date: 2022-09-23 (Fri, 23 Sep 2022)
Changed paths: A JSTests/stress/intl-durationformat-basic.js A JSTests/stress/intl-durationformat-digital.js A JSTests/stress/intl-durationformat-format-to-parts.js A JSTests/stress/intl-durationformat.js M JSTests/stress/intl-enumeration.js M JSTests/test262/config.yaml M JSTests/test262/expectations.yaml M Source/JavaScriptCore/CMakeLists.txt M Source/JavaScriptCore/DerivedSources-input.xcfilelist M Source/JavaScriptCore/DerivedSources-output.xcfilelist M Source/JavaScriptCore/DerivedSources.make M Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj M Source/JavaScriptCore/Sources.txt M Source/JavaScriptCore/heap/Heap.cpp M Source/JavaScriptCore/heap/Heap.h M Source/JavaScriptCore/heap/HeapSubspaceTypes.h M Source/JavaScriptCore/runtime/CommonIdentifiers.h A Source/JavaScriptCore/runtime/IntlDurationFormat.cpp A Source/JavaScriptCore/runtime/IntlDurationFormat.h A Source/JavaScriptCore/runtime/IntlDurationFormatConstructor.cpp A Source/JavaScriptCore/runtime/IntlDurationFormatConstructor.h A Source/JavaScriptCore/runtime/IntlDurationFormatPrototype.cpp A Source/JavaScriptCore/runtime/IntlDurationFormatPrototype.h M Source/JavaScriptCore/runtime/IntlListFormat.cpp M Source/JavaScriptCore/runtime/IntlObject.cpp M Source/JavaScriptCore/runtime/IntlObject.h M Source/JavaScriptCore/runtime/IntlObjectInlines.h M Source/JavaScriptCore/runtime/JSGlobalObject.cpp M Source/JavaScriptCore/runtime/JSGlobalObject.h M Source/JavaScriptCore/runtime/OptionsList.h Log Message: ----------- [JSC] Implement Intl.DurationFormat https://bugs.webkit.org/show_bug.cgi?id=214794 <rdar://66436701> Reviewed by Ross Kirsling. This patch implements Intl.DurationFormat[1], which is now stage-3 feature. It is decoupled from Temporal now: it can take an object with `hours` etc. properties, and generate formatted string for duration. In the future, it will accept Temporal.Duration too. 1. We add new microsecond and nanosecond units because they are necessary to DurationFormat[2]. 2. Implement Intl.DurationFormat with UNumberFormatter and UListFormatter. [1]: https://github.com/tc39/proposal-intl-duration-format [2]: https://github.com/tc39/ecma402/pull/708 * JSTests/stress/intl-durationformat-basic.js: Added. (shouldBe): (shouldBeOneOf): (shouldBeForICUVersion): (shouldNotThrow): (shouldThrow): * JSTests/stress/intl-durationformat-digital.js: Added. (shouldBe): (throw.new.Error): * JSTests/stress/intl-durationformat-format-to-parts.js: Added. (shouldBe): (shouldBeOneOf): (shouldBeForICUVersion): (shouldNotThrow): (shouldThrow): (throw.new.Error): * JSTests/stress/intl-durationformat.js: Added. (shouldBe): (shouldNotThrow): (shouldThrow): (test.DerivedDurationFormat): (test.get shouldThrow): (test): * JSTests/stress/intl-enumeration.js: * JSTests/test262/config.yaml: * JSTests/test262/expectations.yaml: * Source/JavaScriptCore/CMakeLists.txt: * Source/JavaScriptCore/DerivedSources-input.xcfilelist: * Source/JavaScriptCore/DerivedSources-output.xcfilelist: * Source/JavaScriptCore/DerivedSources.make: * Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj: * Source/JavaScriptCore/Sources.txt: * Source/JavaScriptCore/heap/Heap.cpp: (JSC::Heap::Heap): * Source/JavaScriptCore/heap/Heap.h: * Source/JavaScriptCore/heap/HeapSubspaceTypes.h: * Source/JavaScriptCore/runtime/CommonIdentifiers.h: * Source/JavaScriptCore/runtime/IntlDurationFormat.cpp: Added. (JSC::IntlDurationFormat::create): (JSC::IntlDurationFormat::createStructure): (JSC::IntlDurationFormat::IntlDurationFormat): (JSC::IntlDurationFormat::finishCreation): (JSC::intlDurationUnitOptions): (JSC::displayName): (JSC::IntlDurationFormat::initializeDurationFormat): (JSC::ListFormatInput::ListFormatInput): (JSC::ListFormatInput::size const): (JSC::ListFormatInput::stringPointers const): (JSC::ListFormatInput::stringLengths const): (JSC::retrieveSeparator): (JSC::collectElements): (JSC::IntlDurationFormat::format const): (JSC::IntlDurationFormat::formatToParts const): (JSC::IntlDurationFormat::resolvedOptions const): (JSC::IntlDurationFormat::styleString): (JSC::IntlDurationFormat::unitStyleString): (JSC::IntlDurationFormat::displayString): * Source/JavaScriptCore/runtime/IntlDurationFormat.h: Added. * Source/JavaScriptCore/runtime/IntlDurationFormatConstructor.cpp: Added. (JSC::IntlDurationFormatConstructor::create): (JSC::IntlDurationFormatConstructor::createStructure): (JSC::IntlDurationFormatConstructor::IntlDurationFormatConstructor): (JSC::IntlDurationFormatConstructor::finishCreation): (JSC::JSC_DEFINE_HOST_FUNCTION): * Source/JavaScriptCore/runtime/IntlDurationFormatConstructor.h: Added. * Source/JavaScriptCore/runtime/IntlDurationFormatPrototype.cpp: Added. (JSC::IntlDurationFormatPrototype::create): (JSC::IntlDurationFormatPrototype::createStructure): (JSC::IntlDurationFormatPrototype::IntlDurationFormatPrototype): (JSC::IntlDurationFormatPrototype::finishCreation): (JSC::JSC_DEFINE_HOST_FUNCTION): * Source/JavaScriptCore/runtime/IntlDurationFormatPrototype.h: Added. * Source/JavaScriptCore/runtime/IntlObject.cpp: (JSC::createDurationFormatConstructor): (JSC::IntlObject::finishCreation): * Source/JavaScriptCore/runtime/IntlObject.h: (JSC::intlDurationFormatAvailableLocales): * Source/JavaScriptCore/runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::init): * Source/JavaScriptCore/runtime/JSGlobalObject.h: (JSC::JSGlobalObject::durationFormatStructure): Canonical link: https://commits.webkit.org/254791@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes