Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 675814 Details for
Bug 757606
<www-client/chromium-88[system-icu]: V8 requires patch to work with >=dev-libs/icu-68.1
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
V8 ICU 68.1 patch
v8-icu68.patch (text/plain), 6.97 KB, created by
Stephan Hartmann (RETIRED)
on 2020-11-30 11:20:25 UTC
(
hide
)
Description:
V8 ICU 68.1 patch
Filename:
MIME Type:
Creator:
Stephan Hartmann (RETIRED)
Created:
2020-11-30 11:20:25 UTC
Size:
6.97 KB
patch
obsolete
>From b0a7f5691113534c2cf771f2dd3cece5e93bc7d4 Mon Sep 17 00:00:00 2001 >From: Frank Tang <ftang@chromium.org> >Date: Tue, 03 Nov 2020 23:20:37 -0800 >Subject: [PATCH] Update to ICU68-1 > >ICU68-1 change the output skeleton format. So we need to change >resolvedOptions code for 68 migration. > >Chromium roll >https://chromium-review.googlesource.com/c/chromium/src/+/2474093 > >Bug: v8:10945 >Change-Id: I3b2c7fbe8abb22df8fa51287c498ca3245b8c55b >Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477431 >Commit-Queue: Frank Tang <ftang@chromium.org> >Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> >Reviewed-by: Shu-yu Guo <syg@chromium.org> >Cr-Commit-Position: refs/heads/master@{#70972} > >(ported to work with <ICU-68.1) >--- > >diff --git a/src/objects/js-number-format.cc b/src/objects/js-number-format.cc >index 45b0eab..d18b133 100644 >--- a/src/objects/js-number-format.cc >+++ b/src/objects/js-number-format.cc >@@ -389,17 +389,20 @@ Handle<String> CurrencySignString(Isolate* isolate, > Handle<String> UnitDisplayString(Isolate* isolate, > const icu::UnicodeString& skeleton) { > // Ex: skeleton as >- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name" >+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-full-name". >+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-full-name" > if (skeleton.indexOf("unit-width-full-name") >= 0) { > return ReadOnlyRoots(isolate).long_string_handle(); > } > // Ex: skeleton as >- // "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow". >+ // <ICU-68.1: "measure-unit/length-meter .### rounding-mode-half-up unit-width-narrow". >+ // >=ICU-68.1: "unit/length-meter .### rounding-mode-half-up unit-width-narrow". > if (skeleton.indexOf("unit-width-narrow") >= 0) { > return ReadOnlyRoots(isolate).narrow_string_handle(); > } > // Ex: skeleton as >- // "measure-unit/length-foot .### rounding-mode-half-up" >+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up" >+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up" > return ReadOnlyRoots(isolate).short_string_handle(); > } > >@@ -422,7 +425,8 @@ Notation NotationFromSkeleton(const icu::UnicodeString& skeleton) { > return Notation::COMPACT; > } > // Ex: skeleton as >- // "measure-unit/length-foot .### rounding-mode-half-up" >+ // <ICU-68.1: "measure-unit/length-foot .### rounding-mode-half-up" >+ // >=ICU-68.1: "unit/length-foot .### rounding-mode-half-up" > return Notation::STANDARD; > } > >@@ -562,14 +566,23 @@ namespace { > > // Ex: percent .### rounding-mode-half-up > // Special case for "percent" >-// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .### >-// rounding-mode-half-up" should return "kilometer-per-unit". >-// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return >-// "year". >+// <ICU-68.1: >+// Ex: "measure-unit/length-kilometer per-measure-unit/duration-hour .### >+// rounding-mode-half-up" should return "kilometer-per-unit". >+// Ex: "measure-unit/duration-year .### rounding-mode-half-up" should return >+// >=ICU-68.1: >+// Ex: "unit/milliliter-per-acre .### rounding-mode-half-up" >+// should return "milliliter-per-acre". >+// Ex: "unit/year .### rounding-mode-half-up" should return >+// "year". > std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { > std::string str; > str = skeleton.toUTF8String<std::string>(str); >+#if U_ICU_VERSION_MAJOR_NUM < 68 > std::string search("measure-unit/"); >+#else >+ std::string search("unit/"); >+#endif > size_t begin = str.find(search); > if (begin == str.npos) { > // Special case for "percent". >@@ -578,20 +591,41 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { > } > return ""; > } >+#if U_ICU_VERSION_MAJOR_NUM < 68 > // Skip the type (ex: "length"). > // "measure-unit/length-kilometer per-measure-unit/duration-hour" > // b > begin = str.find("-", begin + search.size()); >+#else >+ // Ex: >+ // "unit/acre .### rounding-mode-half-up" >+ // b >+ // Ex: >+ // "unit/milliliter-per-acre .### rounding-mode-half-up" >+ // b >+ begin += search.size(); >+#endif > if (begin == str.npos) { > return ""; > } >+#if U_ICU_VERSION_MAJOR_NUM < 68 > begin++; // Skip the '-'. >+#endif > // Find the end of the subtype. > size_t end = str.find(" ", begin); >- // "measure-unit/length-kilometer per-measure-unit/duration-hour" >- // b e >+ // <ICU-68.1: >+ // "measure-unit/length-kilometer per-measure-unit/duration-hour" >+ // b e >+ // >=ICU-68.1: >+ // Ex: >+ // "unit/acre .### rounding-mode-half-up" >+ // b e >+ // Ex: >+ // "unit/milliliter-per-acre .### rounding-mode-half-up" >+ // b e > if (end == str.npos) { > end = str.size(); >+#if U_ICU_VERSION_MAJOR_NUM < 68 > return str.substr(begin, end - begin); > } > // "measure-unit/length-kilometer per-measure-unit/duration-hour" >@@ -625,17 +659,36 @@ std::string UnitFromSkeleton(const icu::UnicodeString& skeleton) { > // "measure-unit/length-kilometer per-measure-unit/duration-hour" > // [result ] b e > return result + "-per-" + str.substr(begin, end - begin); >+#else >+ } >+ return str.substr(begin, end - begin); >+#endif > } > > Style StyleFromSkeleton(const icu::UnicodeString& skeleton) { > if (skeleton.indexOf("currency/") >= 0) { > return Style::CURRENCY; > } >+#if U_ICU_VERSION_MAJOR_NUM < 68 > if (skeleton.indexOf("measure-unit/") >= 0) { > if (skeleton.indexOf("scale/100") >= 0 && > skeleton.indexOf("measure-unit/concentr-percent") >= 0) { >+#else >+ if (skeleton.indexOf("percent") >= 0) { >+ // percent precision-integer rounding-mode-half-up scale/100 >+ if (skeleton.indexOf("scale/100") >= 0) { >+#endif > return Style::PERCENT; >+#if U_ICU_VERSION_MAJOR_NUM >= 68 >+ } else { >+ return Style::UNIT; >+#endif > } >+#if U_ICU_VERSION_MAJOR_NUM >= 68 >+ } >+ // Before ICU68: "measure-unit/", since ICU68 "unit/" >+ if (skeleton.indexOf("unit/") >= 0) { >+#endif > return Style::UNIT; > } > return Style::DECIMAL; >diff --git a/src/objects/js-relative-time-format.cc b/src/objects/js-relative-time-format.cc >index 267343aaae..64d56a1c12 100644 >--- a/src/objects/js-relative-time-format.cc >+++ b/src/objects/js-relative-time-format.cc >@@ -195,9 +195,18 @@ MaybeHandle<JSRelativeTimeFormat> JSRelativeTimeFormat::New( > } > } > >+#if U_ICU_VERSION_MAJOR_NUM < 68 > icu::DecimalFormat* decimal_format = > static_cast<icu::DecimalFormat*>(number_format); > decimal_format->setMinimumGroupingDigits(-2); >+#else >+ if (number_format->getDynamicClassID() == >+ icu::DecimalFormat::getStaticClassID()) { >+ icu::DecimalFormat* decimal_format = >+ static_cast<icu::DecimalFormat*>(number_format); >+ decimal_format->setMinimumGroupingDigits(-2); >+ } >+#endif > > // Change UDISPCTX_CAPITALIZATION_NONE to other values if > // ECMA402 later include option to change capitalization.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 757606
: 675814