forked from openembedded/meta-openembedded
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
backport relevant v8 patch to fix the build issue Signed-off-by: Khem Raj <[email protected]>
- Loading branch information
Showing
2 changed files
with
94 additions
and
0 deletions.
There are no files selected for viewing
93 changes: 93 additions & 0 deletions
93
meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
From 035c305ce7761f51328b45f1bd83e26aef267c9d Mon Sep 17 00:00:00 2001 | ||
From: Frank Tang <[email protected]> | ||
Date: Thu, 15 Oct 2020 22:44:27 -0700 | ||
Subject: [PATCH] [Intl] call new ListFormatter::createInstance | ||
|
||
The one we currently using is now marked as internal and to be removed | ||
for 68. Migrating to the style which already avaiable in ICU 67-1. | ||
|
||
Upstream-Status: Backport | ||
Bug: v8:11031 | ||
Change-Id: I668382a2e1b8602ddca02bf231c5008a6c92bf2d | ||
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477751 | ||
Reviewed-by: Jakob Kummerow <[email protected]> | ||
Commit-Queue: Frank Tang <[email protected]> | ||
Cr-Commit-Position: refs/heads/master@{#70638} | ||
--- | ||
deps/v8/src/objects/js-list-format.cc | 55 ++++++++++++----------------------- | ||
1 file changed, 18 insertions(+), 37 deletions(-) | ||
|
||
--- a/deps/v8/src/objects/js-list-format.cc | ||
+++ b/deps/v8/src/objects/js-list-format.cc | ||
@@ -29,46 +29,27 @@ namespace v8 { | ||
namespace internal { | ||
|
||
namespace { | ||
-const char* kStandard = "standard"; | ||
-const char* kOr = "or"; | ||
-const char* kUnit = "unit"; | ||
-const char* kStandardShort = "standard-short"; | ||
-const char* kOrShort = "or-short"; | ||
-const char* kUnitShort = "unit-short"; | ||
-const char* kStandardNarrow = "standard-narrow"; | ||
-const char* kOrNarrow = "or-narrow"; | ||
-const char* kUnitNarrow = "unit-narrow"; | ||
|
||
-const char* GetIcuStyleString(JSListFormat::Style style, | ||
- JSListFormat::Type type) { | ||
+UListFormatterWidth GetIcuWidth(JSListFormat::Style style) { | ||
+ switch (style) { | ||
+ case JSListFormat::Style::LONG: | ||
+ return ULISTFMT_WIDTH_WIDE; | ||
+ case JSListFormat::Style::SHORT: | ||
+ return ULISTFMT_WIDTH_SHORT; | ||
+ case JSListFormat::Style::NARROW: | ||
+ return ULISTFMT_WIDTH_NARROW; | ||
+ } | ||
+ UNREACHABLE(); | ||
+} | ||
+ | ||
+UListFormatterType GetIcuType(JSListFormat::Type type) { | ||
switch (type) { | ||
case JSListFormat::Type::CONJUNCTION: | ||
- switch (style) { | ||
- case JSListFormat::Style::LONG: | ||
- return kStandard; | ||
- case JSListFormat::Style::SHORT: | ||
- return kStandardShort; | ||
- case JSListFormat::Style::NARROW: | ||
- return kStandardNarrow; | ||
- } | ||
+ return ULISTFMT_TYPE_AND; | ||
case JSListFormat::Type::DISJUNCTION: | ||
- switch (style) { | ||
- case JSListFormat::Style::LONG: | ||
- return kOr; | ||
- case JSListFormat::Style::SHORT: | ||
- return kOrShort; | ||
- case JSListFormat::Style::NARROW: | ||
- return kOrNarrow; | ||
- } | ||
+ return ULISTFMT_TYPE_OR; | ||
case JSListFormat::Type::UNIT: | ||
- switch (style) { | ||
- case JSListFormat::Style::LONG: | ||
- return kUnit; | ||
- case JSListFormat::Style::SHORT: | ||
- return kUnitShort; | ||
- case JSListFormat::Style::NARROW: | ||
- return kUnitNarrow; | ||
- } | ||
+ return ULISTFMT_TYPE_UNITS; | ||
} | ||
UNREACHABLE(); | ||
} | ||
@@ -143,7 +124,7 @@ MaybeHandle<JSListFormat> JSListFormat:: | ||
icu::Locale icu_locale = r.icu_locale; | ||
UErrorCode status = U_ZERO_ERROR; | ||
icu::ListFormatter* formatter = icu::ListFormatter::createInstance( | ||
- icu_locale, GetIcuStyleString(style_enum, type_enum), status); | ||
+ icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status); | ||
if (U_FAILURE(status) || formatter == nullptr) { | ||
delete formatter; | ||
THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError), |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters