Skip to content

Commit 74e7e72

Browse files
committed
deps: update to ICU 66.1
- ICU 66.1 http://site.icu-project.org/download/66 - Unicode 13 - CLDR 36.1 - Updated ./LICENSE PR-URL: nodejs#32348 Reviewed-By: Ujjwal Sharma <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Michael Dawson <[email protected]>
1 parent b8a794d commit 74e7e72

40 files changed

+6516
-5999
lines changed

LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ The externally maintained libraries used by Node.js are:
118118
"""
119119
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
120120

121-
Copyright © 1991-2019 Unicode, Inc. All rights reserved.
121+
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
122122
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
123123

124124
Permission is hereby granted, free of charge, to any person obtaining

deps/icu-small/LICENSE

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
COPYRIGHT AND PERMISSION NOTICE (ICU 58 and later)
22

3-
Copyright © 1991-2019 Unicode, Inc. All rights reserved.
3+
Copyright © 1991-2020 Unicode, Inc. All rights reserved.
44
Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
55

66
Permission is hereby granted, free of charge, to any person obtaining

deps/icu-small/README-FULL-ICU.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ICU sources - auto generated by shrink-icu-src.py
22

33
This directory contains the ICU subset used by --with-intl=full-icu
4-
It is a strict subset of ICU 65 source files with the following exception(s):
5-
* deps/icu-small/source/data/in/icudt65l.dat.bz2 : compressed data file
4+
It is a strict subset of ICU 66 source files with the following exception(s):
5+
* deps/icu-small/source/data/in/icudt66l.dat.bz2 : compressed data file
66

77

88
To rebuild this directory, see ../../tools/icu/README.md

deps/icu-small/source/common/locid.cpp

+25-1
Original file line numberDiff line numberDiff line change
@@ -1340,7 +1340,31 @@ Locale::getUnicodeKeywordValue(StringPiece keywordName,
13401340
void
13411341
Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErrorCode &status)
13421342
{
1343-
uloc_setKeywordValue(keywordName, keywordValue, fullName, ULOC_FULLNAME_CAPACITY, &status);
1343+
if (U_FAILURE(status)) {
1344+
return;
1345+
}
1346+
int32_t bufferLength = uprv_max((int32_t)(uprv_strlen(fullName) + 1), ULOC_FULLNAME_CAPACITY);
1347+
int32_t newLength = uloc_setKeywordValue(keywordName, keywordValue, fullName,
1348+
bufferLength, &status) + 1;
1349+
/* Handle the case the current buffer is not enough to hold the new id */
1350+
if (status == U_BUFFER_OVERFLOW_ERROR) {
1351+
U_ASSERT(newLength > bufferLength);
1352+
char* newFullName = (char *)uprv_malloc(newLength);
1353+
if (newFullName == nullptr) {
1354+
status = U_MEMORY_ALLOCATION_ERROR;
1355+
return;
1356+
}
1357+
uprv_strcpy(newFullName, fullName);
1358+
if (fullName != fullNameBuffer) {
1359+
// if full Name is already on the heap, need to free it.
1360+
uprv_free(fullName);
1361+
}
1362+
fullName = newFullName;
1363+
status = U_ZERO_ERROR;
1364+
uloc_setKeywordValue(keywordName, keywordValue, fullName, newLength, &status);
1365+
} else {
1366+
U_ASSERT(newLength <= bufferLength);
1367+
}
13441368
if (U_SUCCESS(status) && baseName == fullName) {
13451369
// May have added the first keyword, meaning that the fullName is no longer also the baseName.
13461370
initBaseName(status);

deps/icu-small/source/common/norm2_nfc_data.h

+793-784
Large diffs are not rendered by default.

deps/icu-small/source/common/normalizer2impl.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -2088,6 +2088,13 @@ uint8_t Normalizer2Impl::getPreviousTrailCC(const uint8_t *start, const uint8_t
20882088
// minDecompNoCP etc. and smallFCD[] are intended to help with any loss of performance,
20892089
// at least for ASCII & CJK.
20902090

2091+
// Ticket 20907 - The optimizer in MSVC/Visual Studio versions below 16.4 has trouble with this
2092+
// function on Windows ARM64. As a work-around, we disable optimizations for this function.
2093+
// This work-around could/should be removed once the following versions of Visual Studio are no
2094+
// longer supported: All versions of VS2017, and versions of VS2019 below 16.4.
2095+
#if (defined(_MSC_VER) && (defined(_M_ARM64)) && (_MSC_VER < 1924))
2096+
#pragma optimize( "", off )
2097+
#endif
20912098
// Gets the FCD value from the regular normalization data.
20922099
uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const {
20932100
uint16_t norm16=getNorm16(c);
@@ -2121,6 +2128,9 @@ uint16_t Normalizer2Impl::getFCD16FromNormData(UChar32 c) const {
21212128
}
21222129
return norm16;
21232130
}
2131+
#if (defined(_MSC_VER) && (defined(_M_ARM64)) && (_MSC_VER < 1924))
2132+
#pragma optimize( "", on )
2133+
#endif
21242134

21252135
// Dual functionality:
21262136
// buffer!=NULL: normalize

deps/icu-small/source/common/propname_data.h

+909-882
Large diffs are not rendered by default.

deps/icu-small/source/common/ubidi_props_data.h

+423-409
Large diffs are not rendered by default.

deps/icu-small/source/common/ubidiwrt.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,13 @@ ubidi_writeReverse(const UChar *src, int32_t srcLength,
346346
return u_terminateUChars(dest, destSize, destLength, pErrorCode);
347347
}
348348

349+
// Ticket 20907 - The optimizer in MSVC/Visual Studio versions below 16.4 has trouble with this
350+
// function on Windows ARM64. As a work-around, we disable optimizations for this function.
351+
// This work-around could/should be removed once the following versions of Visual Studio are no
352+
// longer supported: All versions of VS2017, and versions of VS2019 below 16.4.
353+
#if (defined(_MSC_VER) && (defined(_M_ARM64)) && (_MSC_VER < 1924))
354+
#pragma optimize( "", off )
355+
#endif
349356
U_CAPI int32_t U_EXPORT2
350357
ubidi_writeReordered(UBiDi *pBiDi,
351358
UChar *dest, int32_t destSize,
@@ -638,3 +645,6 @@ ubidi_writeReordered(UBiDi *pBiDi,
638645

639646
return u_terminateUChars(saveDest, destCapacity, destCapacity-destSize, pErrorCode);
640647
}
648+
#if (defined(_MSC_VER) && (defined(_M_ARM64)) && (_MSC_VER < 1924))
649+
#pragma optimize( "", on )
650+
#endif

0 commit comments

Comments
 (0)