Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:Update
webkit2gtk3.26886
webkit2gtk3-icu52.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File webkit2gtk3-icu52.patch of Package webkit2gtk3.26886
diff -urp webkitgtk-2.36.0.icu60/Source/cmake/OptionsGTK.cmake webkitgtk-2.36.0.icu52/Source/cmake/OptionsGTK.cmake --- webkitgtk-2.36.0.icu60/Source/cmake/OptionsGTK.cmake 2022-03-29 15:02:28.892121597 -0500 +++ webkitgtk-2.36.0.icu52/Source/cmake/OptionsGTK.cmake 2022-03-28 15:11:54.570977102 -0500 @@ -14,7 +14,7 @@ find_package(Freetype 2.4.2 REQUIRED) find_package(LibGcrypt 1.6.0 REQUIRED) find_package(GLIB 2.56.4 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodule) find_package(HarfBuzz 0.9.18 REQUIRED COMPONENTS ICU) -find_package(ICU 60.2 REQUIRED COMPONENTS data i18n uc) +find_package(ICU 52.1 REQUIRED COMPONENTS data i18n uc) find_package(JPEG REQUIRED) find_package(LibXml2 2.8.0 REQUIRED) find_package(PNG REQUIRED) diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/Heap.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/Heap.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/Heap.cpp 2022-08-31 02:59:51.654492000 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/Heap.cpp 2022-09-13 12:01:43.646637371 -0500 @@ -334,11 +334,8 @@ Heap::Heap(VM& vm, HeapType heapType) , intlCollatorHeapCellType(IsoHeapCellType::Args<IntlCollator>()) , intlDateTimeFormatHeapCellType(IsoHeapCellType::Args<IntlDateTimeFormat>()) , intlDisplayNamesHeapCellType(IsoHeapCellType::Args<IntlDisplayNames>()) - , intlListFormatHeapCellType(IsoHeapCellType::Args<IntlListFormat>()) - , intlLocaleHeapCellType(IsoHeapCellType::Args<IntlLocale>()) , intlNumberFormatHeapCellType(IsoHeapCellType::Args<IntlNumberFormat>()) , intlPluralRulesHeapCellType(IsoHeapCellType::Args<IntlPluralRules>()) - , intlRelativeTimeFormatHeapCellType(IsoHeapCellType::Args<IntlRelativeTimeFormat>()) , intlSegmentIteratorHeapCellType(IsoHeapCellType::Args<IntlSegmentIterator>()) , intlSegmenterHeapCellType(IsoHeapCellType::Args<IntlSegmenter>()) , intlSegmentsHeapCellType(IsoHeapCellType::Args<IntlSegments>()) diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/Heap.h webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/Heap.h --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/Heap.h 2022-08-31 02:59:51.654492000 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/Heap.h 2022-09-13 12:01:34.918591295 -0500 @@ -220,11 +220,8 @@ class Heap; v(intlCollatorSpace, intlCollatorHeapCellType, IntlCollator) \ v(intlDateTimeFormatSpace, intlDateTimeFormatHeapCellType, IntlDateTimeFormat) \ v(intlDisplayNamesSpace, intlDisplayNamesHeapCellType, IntlDisplayNames) \ - v(intlListFormatSpace, intlListFormatHeapCellType, IntlListFormat) \ - v(intlLocaleSpace, intlLocaleHeapCellType, IntlLocale) \ v(intlNumberFormatSpace, intlNumberFormatHeapCellType, IntlNumberFormat) \ v(intlPluralRulesSpace, intlPluralRulesHeapCellType, IntlPluralRules) \ - v(intlRelativeTimeFormatSpace, intlRelativeTimeFormatHeapCellType, IntlRelativeTimeFormat) \ v(intlSegmentIteratorSpace, intlSegmentIteratorHeapCellType, IntlSegmentIterator) \ v(intlSegmenterSpace, intlSegmenterHeapCellType, IntlSegmenter) \ v(intlSegmentsSpace, intlSegmentsHeapCellType, IntlSegments) \ @@ -953,11 +950,8 @@ public: IsoHeapCellType intlCollatorHeapCellType; IsoHeapCellType intlDateTimeFormatHeapCellType; IsoHeapCellType intlDisplayNamesHeapCellType; - IsoHeapCellType intlListFormatHeapCellType; - IsoHeapCellType intlLocaleHeapCellType; IsoHeapCellType intlNumberFormatHeapCellType; IsoHeapCellType intlPluralRulesHeapCellType; - IsoHeapCellType intlRelativeTimeFormatHeapCellType; IsoHeapCellType intlSegmentIteratorHeapCellType; IsoHeapCellType intlSegmenterHeapCellType; IsoHeapCellType intlSegmentsHeapCellType; diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/HeapSubspaceTypes.h webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/HeapSubspaceTypes.h --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/heap/HeapSubspaceTypes.h 2022-08-31 02:59:51.654492000 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/heap/HeapSubspaceTypes.h 2022-09-13 12:02:47.026971977 -0500 @@ -40,11 +40,8 @@ #include "IntlCollator.h" #include "IntlDateTimeFormat.h" #include "IntlDisplayNames.h" -#include "IntlListFormat.h" -#include "IntlLocale.h" #include "IntlNumberFormat.h" #include "IntlPluralRules.h" -#include "IntlRelativeTimeFormat.h" #include "IntlSegmentIterator.h" #include "IntlSegmenter.h" #include "IntlSegments.h" diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlCollator.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlCollator.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlCollator.cpp 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlCollator.cpp 2022-09-13 13:12:12.428961931 -0500 @@ -97,8 +97,16 @@ Vector<String> IntlCollator::sortLocaleD String collation(pointer, length); if (collation == "standard"_s || collation == "search"_s) continue; - if (auto mapped = mapICUCollationKeywordToBCP47(collation)) - keyLocaleData.append(WTFMove(mapped.value())); + + // Map keyword values to BCP 47 equivalents. + if (collation == "dictionary"_s) + keyLocaleData.append("dict"_s); + else if (collation == "gb2312han"_s) + keyLocaleData.append("gb2312"_s); + else if (collation == "phonebook"_s) + keyLocaleData.append("phonebk"_s); + else if (collation == "traditional"_s) + keyLocaleData.append("trad"_s); else keyLocaleData.append(WTFMove(collation)); } diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp 2022-09-13 13:13:29.813370468 -0500 @@ -165,11 +165,12 @@ Vector<String> IntlDateTimeFormat::local ASSERT(U_SUCCESS(status)); String calendar = String(availableName, nameLength); keyLocaleData.append(calendar); - // Adding "islamicc" candidate for backward compatibility. - if (calendar == "islamic-civil"_s) + if (calendar == "gregorian"_s) + keyLocaleData.append("gregory"_s); + else if (calendar == "islamic-civil"_s) keyLocaleData.append("islamicc"_s); - if (auto mapped = mapICUCalendarKeywordToBCP47(calendar)) - keyLocaleData.append(WTFMove(mapped.value())); + else if (calendar == "ethiopic-amete-alem"_s) + keyLocaleData.append("ethioaa"_s); } uenum_close(calendars); break; @@ -647,13 +648,13 @@ void IntlDateTimeFormat::initializeDateT return; } - { - String calendar = resolved.extensions[static_cast<unsigned>(RelevantExtensionKey::Ca)]; - if (auto mapped = mapICUCalendarKeywordToBCP47(calendar)) - m_calendar = WTFMove(mapped.value()); - else - m_calendar = WTFMove(calendar); - } + m_calendar = resolved.extensions[static_cast<unsigned>(RelevantExtensionKey::Ca)]; + if (m_calendar == "gregorian"_s) + m_calendar = "gregory"_s; + else if (m_calendar == "islamicc"_s) + m_calendar = "islamic-civil"_s; + else if (m_calendar == "ethioaa"_s) + m_calendar = "ethiopic-amete-alem"_s; hourCycle = parseHourCycle(resolved.extensions[static_cast<unsigned>(RelevantExtensionKey::Hc)]); m_numberingSystem = resolved.extensions[static_cast<unsigned>(RelevantExtensionKey::Nu)]; @@ -1293,6 +1294,7 @@ JSValue IntlDateTimeFormat::format(JSGlo return jsString(vm, String(WTFMove(result))); } +#if HAVE(ICU_U_DATE_INTERVAL_FORMAT_FORMAT_RANGE_TO_PARTS) static ASCIILiteral partTypeString(UDateFormatField field) { switch (field) { @@ -1420,6 +1422,7 @@ JSValue IntlDateTimeFormat::formatToPart return parts; } +#endif UDateIntervalFormat* IntlDateTimeFormat::createDateIntervalFormatIfNecessary(JSGlobalObject* globalObject) { diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp 2022-09-13 14:41:19.765191648 -0500 @@ -40,7 +40,6 @@ namespace JSC { static JSC_DECLARE_CUSTOM_GETTER(intlDateTimeFormatPrototypeGetterFormat); static JSC_DECLARE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncFormatRange); static JSC_DECLARE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncFormatRangeToParts); -static JSC_DECLARE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncFormatToParts); static JSC_DECLARE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncResolvedOptions); static JSC_DECLARE_HOST_FUNCTION(intlDateTimeFormatFuncFormatDateTime); @@ -56,7 +55,6 @@ const ClassInfo IntlDateTimeFormatProtot @begin dateTimeFormatPrototypeTable format intlDateTimeFormatPrototypeGetterFormat DontEnum|ReadOnly|CustomAccessor formatRange intlDateTimeFormatPrototypeFuncFormatRange DontEnum|Function 2 - formatToParts intlDateTimeFormatPrototypeFuncFormatToParts DontEnum|Function 1 resolvedOptions intlDateTimeFormatPrototypeFuncResolvedOptions DontEnum|Function 0 @end */ @@ -158,26 +156,6 @@ JSC_DEFINE_CUSTOM_GETTER(intlDateTimeFor return JSValue::encode(boundFormat); } -JSC_DEFINE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncFormatToParts, (JSGlobalObject* globalObject, CallFrame* callFrame)) -{ - VM& vm = globalObject->vm(); - auto scope = DECLARE_THROW_SCOPE(vm); - - // 15.4 Intl.DateTimeFormat.prototype.formatToParts (ECMA-402 4.0) - // https://tc39.github.io/ecma402/#sec-Intl.DateTimeFormat.prototype.formatToParts - - // Do not use unwrapForOldFunctions. - auto* dateTimeFormat = jsDynamicCast<IntlDateTimeFormat*>(callFrame->thisValue()); - if (UNLIKELY(!dateTimeFormat)) - return JSValue::encode(throwTypeError(globalObject, scope, "Intl.DateTimeFormat.prototype.formatToParts called on value that's not a DateTimeFormat"_s)); - - JSValue date = callFrame->argument(0); - double value = IntlDateTimeFormat::handleDateTimeValue(globalObject, date); - RETURN_IF_EXCEPTION(scope, { }); - - RELEASE_AND_RETURN(scope, JSValue::encode(dateTimeFormat->formatToParts(globalObject, value))); -} - // http://tc39.es/proposal-intl-DateTimeFormat-formatRange/#sec-intl.datetimeformat.prototype.formatRange JSC_DEFINE_HOST_FUNCTION(intlDateTimeFormatPrototypeFuncFormatRange, (JSGlobalObject* globalObject, CallFrame* callFrame)) { diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDisplayNames.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDisplayNames.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlDisplayNames.cpp 2022-09-12 12:00:01.212440978 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlDisplayNames.cpp 2022-09-13 11:25:04.055025804 -0500 @@ -118,15 +118,6 @@ void IntlDisplayNames::initializeDisplay // preferable in Intl.DisplayNames. We use UDISPCTX_CAPITALIZATION_FOR_STANDALONE because it makes standalone date format better (fr "Juillet 2008" in ICU test suites), // and DisplayNames will support date formats too. UDISPCTX_CAPITALIZATION_FOR_STANDALONE, - - // Narrow becomes UDISPCTX_LENGTH_SHORT. But in currency case, we handle differently instead of using ULocaleDisplayNames. - m_style == Style::Long ? UDISPCTX_LENGTH_FULL : UDISPCTX_LENGTH_SHORT, - - // Always disable ICU SUBSTITUTE since it does not match against what the spec defines. ICU has some special substitute rules, for example, language "en-AA" - // returns "English (AA)" (while AA country code is not defined), but we would like to return either input value or undefined, so we do not want to have ICU substitute rules. - // Note that this is effective after ICU 65. - // https://github.com/unicode-org/icu/commit/53dd621e3a5cff3b78b557c405f1b1d6f125b468 - UDISPCTX_NO_SUBSTITUTE, }; m_localeCString = m_locale.utf8(); m_displayNames = std::unique_ptr<ULocaleDisplayNames, ULocaleDisplayNamesDeleter>(uldn_openForContext(m_localeCString.data(), contexts, WTF_ARRAY_LENGTH(contexts), &status)); diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp 2022-09-13 11:48:49.954552948 -0500 @@ -1467,6 +1467,7 @@ void IntlNumberFormat::setBoundFormat(VM m_boundFormat.set(vm, this, format); } +#if 0 void IntlNumberFormat::formatToPartsInternal(JSGlobalObject* globalObject, Style style, bool sign, IntlMathematicalValue::NumberType numberType, const String& formatted, IntlFieldIterator& iterator, JSArray* parts, JSString* sourceType, JSString* unit) { VM& vm = globalObject->vm(); @@ -1561,7 +1562,6 @@ JSValue IntlNumberFormat::formatToParts( return parts; } -#if HAVE(ICU_U_NUMBER_FORMATTER) JSValue IntlNumberFormat::formatToParts(JSGlobalObject* globalObject, IntlMathematicalValue&& value, JSString* sourceType) const { VM& vm = globalObject->vm(); diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormatInlines.h 2022-09-13 10:16:13.353218204 -0500 @@ -193,6 +193,7 @@ void appendNumberFormatDigitOptionsToSke } } +#if 0 class IntlFieldIterator { public: WTF_MAKE_NONCOPYABLE(IntlFieldIterator); @@ -210,6 +211,7 @@ public: private: UFieldPositionIterator& m_iterator; }; +#endif // https://tc39.es/ecma402/#sec-unwrapnumberformat inline IntlNumberFormat* IntlNumberFormat::unwrapForOldFunctions(JSGlobalObject* globalObject, JSValue thisValue) diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp 2022-08-31 02:59:51.770492800 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp 2022-09-13 14:54:04.473228355 -0500 @@ -35,7 +35,6 @@ namespace JSC { static JSC_DECLARE_CUSTOM_GETTER(intlNumberFormatPrototypeGetterFormat); -static JSC_DECLARE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts); static JSC_DECLARE_HOST_FUNCTION(intlNumberFormatPrototypeFuncResolvedOptions); static JSC_DECLARE_HOST_FUNCTION(intlNumberFormatFuncFormat); @@ -58,7 +57,6 @@ const ClassInfo IntlNumberFormatPrototyp /* Source for IntlNumberFormatPrototype.lut.h @begin numberFormatPrototypeTable format intlNumberFormatPrototypeGetterFormat DontEnum|ReadOnly|CustomAccessor - formatToParts intlNumberFormatPrototypeFuncFormatToParts DontEnum|Function 1 resolvedOptions intlNumberFormatPrototypeFuncResolvedOptions DontEnum|Function 0 @end */ @@ -171,6 +169,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberForma } #endif +#if 0 JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatToParts, (JSGlobalObject* globalObject, CallFrame* callFrame)) { VM& vm = globalObject->vm(); @@ -199,6 +198,7 @@ JSC_DEFINE_HOST_FUNCTION(intlNumberForma RELEASE_AND_RETURN(scope, JSValue::encode(numberFormat->formatToParts(globalObject, value))); #endif } +#endif #if HAVE(ICU_U_NUMBER_RANGE_FORMATTER_FORMAT_RANGE_TO_PARTS) JSC_DEFINE_HOST_FUNCTION(intlNumberFormatPrototypeFuncFormatRangeToParts, (JSGlobalObject* globalObject, CallFrame* callFrame)) diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlObject.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlObject.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlObject.cpp 2022-09-12 12:00:01.216441003 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlObject.cpp 2022-09-13 13:50:18.153029555 -0500 @@ -39,10 +39,8 @@ #include "IntlDisplayNames.h" #include "IntlDisplayNamesConstructor.h" #include "IntlDisplayNamesPrototype.h" -#include "IntlListFormat.h" #include "IntlListFormatConstructor.h" #include "IntlListFormatPrototype.h" -#include "IntlLocale.h" #include "IntlLocaleConstructor.h" #include "IntlLocalePrototype.h" #include "IntlNumberFormatConstructor.h" @@ -61,7 +59,6 @@ #include <unicode/ucal.h> #include <unicode/ucol.h> #include <unicode/ucurr.h> -#include <unicode/ufieldpositer.h> #include <unicode/uloc.h> #include <unicode/unumsys.h> #include <wtf/Assertions.h> @@ -100,6 +97,7 @@ static JSValue createDisplayNamesConstru return IntlDisplayNamesConstructor::create(vm, IntlDisplayNamesConstructor::createStructure(vm, globalObject, globalObject->functionPrototype()), jsCast<IntlDisplayNamesPrototype*>(globalObject->displayNamesStructure()->storedPrototypeObject())); } +#if 0 static JSValue createListFormatConstructor(VM& vm, JSObject* object) { IntlObject* intlObject = jsCast<IntlObject*>(object); @@ -113,6 +111,7 @@ static JSValue createLocaleConstructor(V JSGlobalObject* globalObject = intlObject->globalObject(); return IntlLocaleConstructor::create(vm, IntlLocaleConstructor::createStructure(vm, globalObject, globalObject->functionPrototype()), jsCast<IntlLocalePrototype*>(globalObject->localeStructure()->storedPrototypeObject())); } +#endif static JSValue createNumberFormatConstructor(VM&, JSObject* object) { @@ -128,12 +127,14 @@ static JSValue createPluralRulesConstruc return IntlPluralRulesConstructor::create(vm, IntlPluralRulesConstructor::createStructure(vm, globalObject, globalObject->functionPrototype()), jsCast<IntlPluralRulesPrototype*>(globalObject->pluralRulesStructure()->storedPrototypeObject())); } +#if 0 static JSValue createRelativeTimeFormatConstructor(VM& vm, JSObject* object) { IntlObject* intlObject = jsCast<IntlObject*>(object); JSGlobalObject* globalObject = intlObject->globalObject(); return IntlRelativeTimeFormatConstructor::create(vm, IntlRelativeTimeFormatConstructor::createStructure(vm, globalObject, globalObject->functionPrototype()), jsCast<IntlRelativeTimeFormatPrototype*>(globalObject->relativeTimeFormatStructure()->storedPrototypeObject())); } +#endif static JSValue createSegmenterConstructor(VM& vm, JSObject* object) { @@ -154,10 +155,8 @@ namespace JSC { Collator createCollatorConstructor DontEnum|PropertyCallback DateTimeFormat createDateTimeFormatConstructor DontEnum|PropertyCallback DisplayNames createDisplayNamesConstructor DontEnum|PropertyCallback - Locale createLocaleConstructor DontEnum|PropertyCallback NumberFormat createNumberFormatConstructor DontEnum|PropertyCallback PluralRules createPluralRulesConstructor DontEnum|PropertyCallback - RelativeTimeFormat createRelativeTimeFormatConstructor DontEnum|PropertyCallback Segmenter createSegmenterConstructor DontEnum|PropertyCallback @end */ @@ -170,11 +169,13 @@ struct MatcherResult { const ClassInfo IntlObject::s_info = { "Intl"_s, &Base::s_info, &intlObjectTable, nullptr, CREATE_METHOD_TABLE(IntlObject) }; +#if 0 void UFieldPositionIteratorDeleter::operator()(UFieldPositionIterator* iterator) const { if (iterator) ufieldpositer_close(iterator); } +#endif const MeasureUnit simpleUnits[43] = { { "area"_s, "acre"_s }, @@ -242,7 +243,7 @@ void IntlObject::finishCreation(VM& vm, #if HAVE(ICU_U_LIST_FORMATTER) putDirectWithoutTransition(vm, vm.propertyNames->ListFormat, createListFormatConstructor(vm, this), static_cast<unsigned>(PropertyAttribute::DontEnum)); #else - UNUSED_PARAM(&createListFormatConstructor); + //UNUSED_PARAM(&createListFormatConstructor); #endif if (Options::useIntlEnumeration()) JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION("supportedValuesOf"_s, intlObjectFuncSupportedValuesOf, static_cast<unsigned>(PropertyAttribute::DontEnum), 1, ImplementationVisibility::Public); @@ -702,7 +703,7 @@ Vector<String> canonicalizeLocaleList(JS return seen; JSObject* localesObject; - if (locales.isString() || locales.inherits<IntlLocale>()) { + if (locales.isString()) { JSArray* localesArray = JSArray::tryCreate(vm, globalObject->arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous)); if (!localesArray) { throwOutOfMemoryError(globalObject, scope); @@ -739,15 +740,11 @@ Vector<String> canonicalizeLocaleList(JS } String tag; - if (kValue.inherits<IntlLocale>()) - tag = jsCast<IntlLocale*>(kValue)->toString(); - else { - JSString* string = kValue.toString(globalObject); - RETURN_IF_EXCEPTION(scope, Vector<String>()); + JSString* string = kValue.toString(globalObject); + RETURN_IF_EXCEPTION(scope, Vector<String>()); - tag = string->value(globalObject); - RETURN_IF_EXCEPTION(scope, Vector<String>()); - } + tag = string->value(globalObject); + RETURN_IF_EXCEPTION(scope, Vector<String>()); if (isStructurallyValidLanguageTag(tag)) { ASSERT(tag.isAllASCII()); diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlObject.h webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlObject.h --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlObject.h 2022-09-12 12:00:01.216441003 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlObject.h 2022-09-13 12:48:57.757599224 -0500 @@ -159,6 +159,7 @@ bool isWellFormedCurrencyCode(StringView std::optional<Vector<char, 32>> canonicalizeLocaleIDWithoutNullTerminator(const char* localeID); +#if 0 struct UFieldPositionIteratorDeleter { void operator()(UFieldPositionIterator*) const; }; @@ -174,5 +175,6 @@ inline CalendarID utcTimeZoneID() return utcTimeZoneIDSlow(); return value; } +#endif } // namespace JSC diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlPluralRules.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlPluralRules.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/IntlPluralRules.cpp 2022-08-31 02:59:51.774492700 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/IntlPluralRules.cpp 2022-09-13 11:55:14.956585494 -0500 @@ -212,6 +212,7 @@ JSObject* IntlPluralRules::resolvedOptio break; } +#if 0 JSArray* categories = JSArray::tryCreate(vm, globalObject->arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous), 0); if (UNLIKELY(!categories)) { throwOutOfMemoryError(globalObject, scope); @@ -231,6 +232,7 @@ JSObject* IntlPluralRules::resolvedOptio RETURN_IF_EXCEPTION(scope, { }); } options->putDirect(vm, Identifier::fromString(vm, "pluralCategories"_s), categories); +#endif options->putDirect(vm, vm.propertyNames->roundingMode, jsNontrivialString(vm, IntlNumberFormat::roundingPriorityString(m_roundingType))); return options; @@ -262,10 +264,33 @@ JSValue IntlPluralRules::select(JSGlobal return throwTypeError(globalObject, scope, "failed to select plural value"_s); return jsString(vm, String(WTFMove(buffer))); #else +#if 0 Vector<UChar, 8> result(8); auto length = uplrules_selectWithFormat(m_pluralRules.get(), value, m_numberFormat.get(), result.data(), result.size(), &status); if (U_FAILURE(status)) return throwTypeError(globalObject, scope, "failed to select plural value"_s); +#else + Vector<UChar, 32> buffer(32); + auto length = unum_formatDouble(m_numberFormat.get(), value, buffer.data(), buffer.size(), nullptr, &status); + if (status == U_BUFFER_OVERFLOW_ERROR) { + buffer.grow(length); + status = U_ZERO_ERROR; + unum_formatDouble(m_numberFormat.get(), value, buffer.data(), length, nullptr, &status); + } + if (U_FAILURE(status)) + return throwTypeError(globalObject, scope, "failed to select plural value"_s); + + double formatted = unum_parseDouble(m_numberFormat.get(), buffer.data(), length, nullptr, &status); + if (U_FAILURE(status)) + return throwTypeError(globalObject, scope, "failed to select plural value"_s); + + // Can only be 'zero', 'one', 'two', 'few', 'many' or 'other' + status = U_ZERO_ERROR; + Vector<UChar, 8> result(8); + length = uplrules_select(m_pluralRules.get(), formatted, result.data(), result.size(), &status); + if (U_FAILURE(status)) + return throwTypeError(globalObject, scope, "failed to select plural value"_s); +#endif return jsString(vm, String(result.data(), length)); #endif diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSDateMath.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSDateMath.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSDateMath.cpp 2022-08-31 02:59:51.778492700 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSDateMath.cpp 2022-09-13 15:17:59.144802235 -0500 @@ -467,12 +467,8 @@ void DateCache::timeZoneCacheSlow() ucal_setGregorianChange(cache->m_calendar.get(), minECMAScriptTime, &status); // Ignore "unsupported" error. m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(cache); #else - if (!timeZoneID.isEmpty()) { - m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(toOpaqueICUTimeZone(icu::TimeZone::createTimeZone(icu::UnicodeString(timeZoneID.data(), timeZoneID.size())))); - return; - } // Do not use icu::TimeZone::createDefault. ICU internally has a cache for timezone and createDefault returns this cached value. - m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(toOpaqueICUTimeZone(icu::TimeZone::detectHostTimeZone())); + m_timeZoneCache = std::unique_ptr<OpaqueICUTimeZone, OpaqueICUTimeZoneDeleter>(toOpaqueICUTimeZone(icu::TimeZone::createDefault())); #endif } diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSGlobalObject.cpp webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSGlobalObject.cpp --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSGlobalObject.cpp 2022-08-31 02:59:51.782492900 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSGlobalObject.cpp 2022-09-13 13:25:20.977124894 -0500 @@ -80,18 +80,12 @@ #include "IntlDateTimeFormatPrototype.h" #include "IntlDisplayNames.h" #include "IntlDisplayNamesPrototype.h" -#include "IntlListFormat.h" -#include "IntlListFormatPrototype.h" -#include "IntlLocale.h" -#include "IntlLocalePrototype.h" #include "IntlNumberFormat.h" #include "IntlNumberFormatConstructor.h" #include "IntlNumberFormatPrototype.h" #include "IntlObject.h" #include "IntlPluralRules.h" #include "IntlPluralRulesPrototype.h" -#include "IntlRelativeTimeFormat.h" -#include "IntlRelativeTimeFormatPrototype.h" #include "IntlSegmentIterator.h" #include "IntlSegmentIteratorPrototype.h" #include "IntlSegmenter.h" @@ -1195,30 +1189,12 @@ capitalName ## Constructor* lowerName ## IntlDisplayNamesPrototype* displayNamesPrototype = IntlDisplayNamesPrototype::create(init.vm, IntlDisplayNamesPrototype::createStructure(init.vm, globalObject, globalObject->objectPrototype())); init.set(IntlDisplayNames::createStructure(init.vm, globalObject, displayNamesPrototype)); }); - m_listFormatStructure.initLater( - [] (const Initializer<Structure>& init) { - JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(init.owner); - IntlListFormatPrototype* listFormatPrototype = IntlListFormatPrototype::create(init.vm, IntlListFormatPrototype::createStructure(init.vm, globalObject, globalObject->objectPrototype())); - init.set(IntlListFormat::createStructure(init.vm, globalObject, listFormatPrototype)); - }); - m_localeStructure.initLater( - [] (const Initializer<Structure>& init) { - JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(init.owner); - IntlLocalePrototype* localePrototype = IntlLocalePrototype::create(init.vm, IntlLocalePrototype::createStructure(init.vm, globalObject, globalObject->objectPrototype())); - init.set(IntlLocale::createStructure(init.vm, globalObject, localePrototype)); - }); m_pluralRulesStructure.initLater( [] (const Initializer<Structure>& init) { JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(init.owner); IntlPluralRulesPrototype* pluralRulesPrototype = IntlPluralRulesPrototype::create(init.vm, globalObject, IntlPluralRulesPrototype::createStructure(init.vm, globalObject, globalObject->objectPrototype())); init.set(IntlPluralRules::createStructure(init.vm, globalObject, pluralRulesPrototype)); }); - m_relativeTimeFormatStructure.initLater( - [] (const Initializer<Structure>& init) { - JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(init.owner); - IntlRelativeTimeFormatPrototype* relativeTimeFormatPrototype = IntlRelativeTimeFormatPrototype::create(init.vm, IntlRelativeTimeFormatPrototype::createStructure(init.vm, globalObject, globalObject->objectPrototype())); - init.set(IntlRelativeTimeFormat::createStructure(init.vm, globalObject, relativeTimeFormatPrototype)); - }); m_segmentIteratorStructure.initLater( [] (const Initializer<Structure>& init) { JSGlobalObject* globalObject = jsCast<JSGlobalObject*>(init.owner); @@ -2251,10 +2227,7 @@ void JSGlobalObject::visitChildrenImpl(J thisObject->m_defaultCollator.visit(visitor); thisObject->m_collatorStructure.visit(visitor); thisObject->m_displayNamesStructure.visit(visitor); - thisObject->m_listFormatStructure.visit(visitor); - thisObject->m_localeStructure.visit(visitor); thisObject->m_pluralRulesStructure.visit(visitor); - thisObject->m_relativeTimeFormatStructure.visit(visitor); thisObject->m_segmentIteratorStructure.visit(visitor); thisObject->m_segmenterStructure.visit(visitor); thisObject->m_segmentsStructure.visit(visitor); diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSGlobalObject.h webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSGlobalObject.h --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/runtime/JSGlobalObject.h 2022-08-31 02:59:51.782492900 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/runtime/JSGlobalObject.h 2022-09-13 13:26:03.481349271 -0500 @@ -327,10 +327,7 @@ public: LazyProperty<JSGlobalObject, IntlCollator> m_defaultCollator; LazyProperty<JSGlobalObject, Structure> m_collatorStructure; LazyProperty<JSGlobalObject, Structure> m_displayNamesStructure; - LazyProperty<JSGlobalObject, Structure> m_listFormatStructure; - LazyProperty<JSGlobalObject, Structure> m_localeStructure; LazyProperty<JSGlobalObject, Structure> m_pluralRulesStructure; - LazyProperty<JSGlobalObject, Structure> m_relativeTimeFormatStructure; LazyProperty<JSGlobalObject, Structure> m_segmentIteratorStructure; LazyProperty<JSGlobalObject, Structure> m_segmenterStructure; LazyProperty<JSGlobalObject, Structure> m_segmentsStructure; @@ -985,11 +982,8 @@ public: Structure* collatorStructure() { return m_collatorStructure.get(this); } Structure* dateTimeFormatStructure() { return m_dateTimeFormatStructure.get(this); } Structure* displayNamesStructure() { return m_displayNamesStructure.get(this); } - Structure* listFormatStructure() { return m_listFormatStructure.get(this); } Structure* numberFormatStructure() { return m_numberFormatStructure.get(this); } - Structure* localeStructure() { return m_localeStructure.get(this); } Structure* pluralRulesStructure() { return m_pluralRulesStructure.get(this); } - Structure* relativeTimeFormatStructure() { return m_relativeTimeFormatStructure.get(this); } Structure* segmentIteratorStructure() { return m_segmentIteratorStructure.get(this); } Structure* segmenterStructure() { return m_segmenterStructure.get(this); } Structure* segmentsStructure() { return m_segmentsStructure.get(this); } diff -urp webkitgtk-2.37.91.icu60/Source/JavaScriptCore/Sources.txt webkitgtk-2.37.91.icu52/Source/JavaScriptCore/Sources.txt --- webkitgtk-2.37.91.icu60/Source/JavaScriptCore/Sources.txt 2022-08-31 02:59:51.494491000 -0500 +++ webkitgtk-2.37.91.icu52/Source/JavaScriptCore/Sources.txt 2022-09-13 12:01:17.742500638 -0500 @@ -845,12 +845,6 @@ runtime/IntlDateTimeFormatPrototype.cpp runtime/IntlDisplayNames.cpp runtime/IntlDisplayNamesConstructor.cpp runtime/IntlDisplayNamesPrototype.cpp -runtime/IntlListFormat.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect in this file. -runtime/IntlListFormatConstructor.cpp -runtime/IntlListFormatPrototype.cpp -runtime/IntlLocale.cpp -runtime/IntlLocaleConstructor.cpp -runtime/IntlLocalePrototype.cpp runtime/IntlNumberFormat.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect in this file. runtime/IntlNumberFormatConstructor.cpp runtime/IntlNumberFormatPrototype.cpp @@ -858,9 +852,6 @@ runtime/IntlObject.cpp runtime/IntlPluralRules.cpp @no-unify // Confine U_HIDE_DRAFT_API's effect to this file. runtime/IntlPluralRulesConstructor.cpp runtime/IntlPluralRulesPrototype.cpp -runtime/IntlRelativeTimeFormat.cpp -runtime/IntlRelativeTimeFormatConstructor.cpp -runtime/IntlRelativeTimeFormatPrototype.cpp runtime/IntlSegmentIterator.cpp runtime/IntlSegmentIteratorPrototype.cpp runtime/IntlSegmenter.cpp diff -urp webkitgtk-2.37.91.icu60/Source/WebCore/platform/text/CharacterProperties.h webkitgtk-2.37.91.icu52/Source/WebCore/platform/text/CharacterProperties.h --- webkitgtk-2.37.91.icu60/Source/WebCore/platform/text/CharacterProperties.h 2022-08-31 02:59:56.390520000 -0500 +++ webkitgtk-2.37.91.icu52/Source/WebCore/platform/text/CharacterProperties.h 2022-09-13 15:52:45.259815383 -0500 @@ -44,7 +44,6 @@ static_assert(UBLOCK_SYMBOLS_AND_PICTOGR case UBLOCK_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS: case UBLOCK_EMOTICONS: case UBLOCK_TRANSPORT_AND_MAP_SYMBOLS: - case UBLOCK_SUPPLEMENTAL_SYMBOLS_AND_PICTOGRAPHS: case UBLOCK_SYMBOLS_AND_PICTOGRAPHS_EXTENDED_A: return true; default: @@ -80,12 +79,12 @@ inline bool isEmojiRegionalIndicator(UCh inline bool isEmojiWithPresentationByDefault(UChar32 character) { - return u_hasBinaryProperty(character, UCHAR_EMOJI_PRESENTATION); + return false; } inline bool isEmojiModifierBase(UChar32 character) { - return u_hasBinaryProperty(character, UCHAR_EMOJI_MODIFIER_BASE); + return false; } inline bool isDefaultIgnorableCodePoint(UChar32 character)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor