Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nodejs/node
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: cda64b65166cef5a4ac61f764164718ea8c2a191
Choose a base ref
..
head repository: nodejs/node
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6b49bc9dff51593de603358372ee44fafb478398
Choose a head ref
Showing with 952 additions and 5,683 deletions.
  1. +5 βˆ’1 Makefile
  2. +2 βˆ’0 README.md
  3. +8 βˆ’6 deps/icu-small/source/common/cmemory.h
  4. +22 βˆ’11 deps/icu-small/source/common/locid.cpp
  5. +10 βˆ’8 deps/icu-small/source/common/rbbitblb.cpp
  6. +20 βˆ’1 deps/icu-small/source/common/uloc.cpp
  7. +5 βˆ’0 deps/icu-small/source/common/unicode/docmain.h
  8. +1 βˆ’0 deps/icu-small/source/common/unicode/urename.h
  9. +3 βˆ’3 deps/icu-small/source/common/unicode/uvernum.h
  10. +180 βˆ’12 deps/icu-small/source/common/wintz.cpp
  11. BIN deps/icu-small/source/data/in/icudt68l.dat.bz2
  12. +51 βˆ’18 deps/icu-small/source/i18n/dtitvfmt.cpp
  13. +7 βˆ’0 deps/icu-small/source/i18n/formatted_string_builder.cpp
  14. +16 βˆ’4 deps/icu-small/source/i18n/formattedval_impl.h
  15. +47 βˆ’38 deps/icu-small/source/i18n/formattedval_sbimpl.cpp
  16. +16 βˆ’24 deps/icu-small/source/i18n/listformatter.cpp
  17. +59 βˆ’19 deps/icu-small/source/i18n/measunit.cpp
  18. +15 βˆ’13 deps/icu-small/source/i18n/number_skeletons.cpp
  19. +11 βˆ’0 deps/icu-small/source/i18n/unicode/dtitvfmt.h
  20. +5 βˆ’9 deps/icu-small/source/i18n/unicode/listformatter.h
  21. +1 βˆ’0 deps/icu-small/source/i18n/unicode/measunit.h
  22. +9 βˆ’13 deps/icu-small/source/i18n/unicode/ulistformatter.h
  23. +1 βˆ’0 deps/npm/.npmignore
  24. +20 βˆ’0 deps/npm/CHANGELOG.md
  25. +3 βˆ’17 deps/npm/docs/content/commands/npm.md
  26. +1 βˆ’1 deps/npm/docs/output/commands/npm-ls.html
  27. +5 βˆ’19 deps/npm/docs/output/commands/npm.html
  28. +1 βˆ’1 deps/npm/man/man1/npm-ls.1
  29. +4 βˆ’25 deps/npm/man/man1/npm.1
  30. +8 βˆ’3 deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
  31. +4 βˆ’1 deps/npm/node_modules/@npmcli/arborist/lib/consistent-resolve.js
  32. +2 βˆ’2 deps/npm/node_modules/@npmcli/arborist/package.json
  33. +3 βˆ’1 deps/npm/node_modules/pacote/lib/fetcher.js
  34. +32 βˆ’13 deps/npm/node_modules/pacote/lib/git.js
  35. +1 βˆ’1 deps/npm/node_modules/pacote/package.json
  36. +4 βˆ’4 deps/npm/package.json
  37. +32 βˆ’8 doc/api/crypto.md
  38. +3 βˆ’0 doc/api/documentation.md
  39. +4 βˆ’0 doc/api_assets/style.css
  40. +1 βˆ’1 doc/guides/maintaining-icu.md
  41. +2 βˆ’3 lib/buffer.js
  42. +2 βˆ’0 lib/crypto.js
  43. +2 βˆ’6 lib/internal/bootstrap/switches/does_own_process_state.js
  44. +10 βˆ’6 lib/internal/child_process.js
  45. +43 βˆ’9 lib/internal/crypto/random.js
  46. +2 βˆ’5 lib/internal/dns/utils.js
  47. +2 βˆ’4 lib/internal/process/per_thread.js
  48. +3 βˆ’6 lib/internal/util/inspect.js
  49. +2 βˆ’3 lib/internal/worker.js
  50. +0 βˆ’11 lib/perf_hooks.js
  51. +2 βˆ’0 src/async_wrap.h
  52. +57 βˆ’23 src/crypto/crypto_random.cc
  53. +38 βˆ’1 src/crypto/crypto_random.h
  54. +2 βˆ’1 src/node_blob.cc
  55. +11 βˆ’0 test/abort/abort.status
  56. +2 βˆ’0 test/addons/addon.status
  57. +4 βˆ’0 test/parallel/parallel.status
  58. +30 βˆ’30 test/parallel/test-crypto-prime.js
  59. +3 βˆ’0 tools/doc/alljson.js
  60. +111 βˆ’0 tools/doc/stability.js
  61. +2 βˆ’2 tools/icu/current_ver.dep
  62. +0 βˆ’103 tools/icu/icu-generic.gyp
  63. +0 βˆ’2,415 tools/icu/patches/64/source/common/putil.cpp
  64. +0 βˆ’2,778 tools/icu/patches/64/source/i18n/dtptngen.cpp
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -696,7 +696,7 @@ doc-only: tools/doc/node_modules \
@if [ "$(shell $(node_use_openssl))" != "true" ]; then \
echo "Skipping doc-only (no crypto)"; \
else \
$(MAKE) out/doc/api/all.html out/doc/api/all.json; \
$(MAKE) out/doc/api/all.html out/doc/api/all.json out/doc/api/stability; \
fi

.PHONY: doc
@@ -749,6 +749,10 @@ out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.js \
out/doc/api/all.json: $(apidocs_json) tools/doc/alljson.js | out/doc/api
$(call available-node, tools/doc/alljson.js)

.PHONY: out/doc/api/stability
out/doc/api/stability: out/doc/api/all.json tools/doc/stability.js | out/doc/api
$(call available-node, tools/doc/stability.js)

.PHONY: docopen
docopen: out/doc/api/all.html
@$(PYTHON) -mwebbrowser file://$(abspath $<)
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -387,6 +387,8 @@ For information about the governance of the Node.js project, see
**Andrey Pechkurov** &lt;apechkurov@gmail.com&gt; (he/him)
* [Qard](https://github.com/Qard) -
**Stephen Belanger** &lt;admin@stephenbelanger.com&gt; (he/him)
* [RaisinTen](https://github.com/RaisinTen) -
**Darshan Sen** &lt;raisinten@gmail.com&gt; (he/him)
* [refack](https://github.com/refack) -
**Refael Ackermann (ר׀אל Χ€ΧœΧ—Χ™)** &lt;refack@gmail.com&gt; (he/him/הוא/אΧͺΧ”)
* [rexagod](https://github.com/rexagod) -
14 changes: 8 additions & 6 deletions deps/icu-small/source/common/cmemory.h
Original file line number Diff line number Diff line change
@@ -725,9 +725,14 @@ class MemoryPool : public UMemory {
}

MemoryPool& operator=(MemoryPool&& other) U_NOEXCEPT {
fCount = other.fCount;
fPool = std::move(other.fPool);
other.fCount = 0;
// Since `this` may contain instances that need to be deleted, we can't
// just throw them away and replace them with `other`. The normal way of
// dealing with this in C++ is to swap `this` and `other`, rather than
// simply overwrite: the destruction of `other` can then take care of
// running MemoryPool::~MemoryPool() over the still-to-be-deallocated
// instances.
std::swap(fCount, other.fCount);
std::swap(fPool, other.fPool);
return *this;
}

@@ -796,9 +801,6 @@ class MemoryPool : public UMemory {
template<typename T, int32_t stackCapacity = 8>
class MaybeStackVector : protected MemoryPool<T, stackCapacity> {
public:
using MemoryPool<T, stackCapacity>::MemoryPool;
using MemoryPool<T, stackCapacity>::operator=;

template<typename... Args>
T* emplaceBack(Args&&... args) {
return this->create(args...);
33 changes: 22 additions & 11 deletions deps/icu-small/source/common/locid.cpp
Original file line number Diff line number Diff line change
@@ -35,6 +35,7 @@

#include "unicode/bytestream.h"
#include "unicode/locid.h"
#include "unicode/localebuilder.h"
#include "unicode/strenum.h"
#include "unicode/stringpiece.h"
#include "unicode/uloc.h"
@@ -1028,7 +1029,7 @@ class AliasReplacer {
// place the the replaced locale ID in out and return true.
// Otherwise return false for no replacement or error.
bool replace(
const Locale& locale, CharString& out, UErrorCode status);
const Locale& locale, CharString& out, UErrorCode& status);

private:
const char* language;
@@ -1336,10 +1337,13 @@ AliasReplacer::replaceTerritory(UVector& toBeFreed, UErrorCode& status)
// Cannot use nullptr for language because that will construct
// the default locale, in that case, use "und" to get the correct
// locale.
Locale l(language == nullptr ? "und" : language, nullptr, script);
Locale l = LocaleBuilder()
.setLanguage(language == nullptr ? "und" : language)
.setScript(script)
.build(status);
l.addLikelySubtags(status);
const char* likelyRegion = l.getCountry();
CharString* item = nullptr;
LocalPointer<CharString> item;
if (likelyRegion != nullptr && uprv_strlen(likelyRegion) > 0) {
size_t len = uprv_strlen(likelyRegion);
const char* foundInReplacement = uprv_strstr(replacement,
@@ -1351,20 +1355,22 @@ AliasReplacer::replaceTerritory(UVector& toBeFreed, UErrorCode& status)
*(foundInReplacement-1) == ' ');
U_ASSERT(foundInReplacement[len] == ' ' ||
foundInReplacement[len] == '\0');
item = new CharString(foundInReplacement, (int32_t)len, status);
item.adoptInsteadAndCheckErrorCode(
new CharString(foundInReplacement, (int32_t)len, status), status);
}
}
if (item == nullptr) {
item = new CharString(replacement,
(int32_t)(firstSpace - replacement), status);
if (item.isNull() && U_SUCCESS(status)) {
item.adoptInsteadAndCheckErrorCode(
new CharString(replacement,
(int32_t)(firstSpace - replacement), status), status);
}
if (U_FAILURE(status)) { return false; }
if (item == nullptr) {
if (item.isNull()) {
status = U_MEMORY_ALLOCATION_ERROR;
return false;
}
replacedRegion = item->data();
toBeFreed.addElement(item, status);
toBeFreed.addElement(item.orphan(), status);
}
U_ASSERT(!same(region, replacedRegion));
region = replacedRegion;
@@ -1453,7 +1459,7 @@ AliasReplacer::outputToString(
int32_t variantsStart = out.length();
for (int32_t i = 0; i < variants.size(); i++) {
out.append(SEP_CHAR, status)
.append((const char*)((UVector*)variants.elementAt(i)),
.append((const char*)(variants.elementAt(i)),
status);
}
T_CString_toUpperCase(out.data() + variantsStart);
@@ -1470,7 +1476,7 @@ AliasReplacer::outputToString(
}

bool
AliasReplacer::replace(const Locale& locale, CharString& out, UErrorCode status)
AliasReplacer::replace(const Locale& locale, CharString& out, UErrorCode& status)
{
data = AliasData::singleton(status);
if (U_FAILURE(status)) {
@@ -2453,9 +2459,13 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
if (U_FAILURE(status)) {
return;
}
if (status == U_STRING_NOT_TERMINATED_WARNING) {
status = U_ZERO_ERROR;
}
int32_t bufferLength = uprv_max((int32_t)(uprv_strlen(fullName) + 1), ULOC_FULLNAME_CAPACITY);
int32_t newLength = uloc_setKeywordValue(keywordName, keywordValue, fullName,
bufferLength, &status) + 1;
U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING);
/* Handle the case the current buffer is not enough to hold the new id */
if (status == U_BUFFER_OVERFLOW_ERROR) {
U_ASSERT(newLength > bufferLength);
@@ -2472,6 +2482,7 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro
fullName = newFullName;
status = U_ZERO_ERROR;
uloc_setKeywordValue(keywordName, keywordValue, fullName, newLength, &status);
U_ASSERT(status != U_STRING_NOT_TERMINATED_WARNING);
} else {
U_ASSERT(newLength <= bufferLength);
}
18 changes: 10 additions & 8 deletions deps/icu-small/source/common/rbbitblb.cpp
Original file line number Diff line number Diff line change
@@ -1402,12 +1402,13 @@ void RBBITableBuilder::exportTable(void *where) {
U_ASSERT (sd->fAccepting <= 255);
U_ASSERT (sd->fLookAhead <= 255);
U_ASSERT (0 <= sd->fTagsIdx && sd->fTagsIdx <= 255);
row->r8.fAccepting = sd->fAccepting;
row->r8.fLookAhead = sd->fLookAhead;
row->r8.fTagsIdx = sd->fTagsIdx;
RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row;
r8->fAccepting = sd->fAccepting;
r8->fLookAhead = sd->fLookAhead;
r8->fTagsIdx = sd->fTagsIdx;
for (col=0; col<catCount; col++) {
U_ASSERT (sd->fDtran->elementAti(col) <= kMaxStateFor8BitsTable);
row->r8.fNextState[col] = sd->fDtran->elementAti(col);
r8->fNextState[col] = sd->fDtran->elementAti(col);
}
} else {
U_ASSERT (sd->fAccepting <= 0xffff);
@@ -1603,12 +1604,13 @@ void RBBITableBuilder::exportSafeTable(void *where) {
UnicodeString *rowString = (UnicodeString *)fSafeTable->elementAt(state);
RBBIStateTableRow *row = (RBBIStateTableRow *)(table->fTableData + state*table->fRowLen);
if (use8BitsForSafeTable()) {
row->r8.fAccepting = 0;
row->r8.fLookAhead = 0;
row->r8.fTagsIdx = 0;
RBBIStateTableRow8 *r8 = (RBBIStateTableRow8*)row;
r8->fAccepting = 0;
r8->fLookAhead = 0;
r8->fTagsIdx = 0;
for (col=0; col<catCount; col++) {
U_ASSERT(rowString->charAt(col) <= kMaxStateFor8BitsTable);
row->r8.fNextState[col] = static_cast<uint8_t>(rowString->charAt(col));
r8->fNextState[col] = static_cast<uint8_t>(rowString->charAt(col));
}
} else {
row->r16.fAccepting = 0;
21 changes: 20 additions & 1 deletion deps/icu-small/source/common/uloc.cpp
Original file line number Diff line number Diff line change
@@ -877,6 +877,9 @@ uloc_setKeywordValue(const char* keywordName,
if(U_FAILURE(*status)) {
return -1;
}
if (*status == U_STRING_NOT_TERMINATED_WARNING) {
*status = U_ZERO_ERROR;
}
if (keywordName == NULL || keywordName[0] == 0 || bufferCapacity <= 1) {
*status = U_ILLEGAL_ARGUMENT_ERROR;
return 0;
@@ -914,6 +917,7 @@ uloc_setKeywordValue(const char* keywordName,
startSearchHere = (char*)locale_getKeywordsStart(buffer);
if(startSearchHere == NULL || (startSearchHere[1]==0)) {
if(keywordValueLen == 0) { /* no keywords = nothing to remove */
U_ASSERT(*status != U_STRING_NOT_TERMINATED_WARNING);
return bufLen;
}

@@ -933,6 +937,7 @@ uloc_setKeywordValue(const char* keywordName,
startSearchHere += keywordNameLen;
*startSearchHere++ = '=';
uprv_strcpy(startSearchHere, keywordValueBuffer);
U_ASSERT(*status != U_STRING_NOT_TERMINATED_WARNING);
return needLen;
} /* end shortcut - no @ */

@@ -1047,13 +1052,27 @@ uloc_setKeywordValue(const char* keywordName,
if (!handledInputKeyAndValue || U_FAILURE(*status)) {
/* if input key/value specified removal of a keyword not present in locale, or
* there was an error in CharString.append, leave original locale alone. */
U_ASSERT(*status != U_STRING_NOT_TERMINATED_WARNING);
return bufLen;
}

// needLen = length of the part before '@'
needLen = (int32_t)(startSearchHere - buffer);
return needLen + updatedKeysAndValues.extract(
// Check to see can we fit the startSearchHere, if not, return
// U_BUFFER_OVERFLOW_ERROR without copy updatedKeysAndValues into it.
// We do this because this API function does not behave like most others:
// It promises never to set a U_STRING_NOT_TERMINATED_WARNING.
// When the contents fits but without the terminating NUL, in this case we need to not change
// the buffer contents and return with a buffer overflow error.
int32_t appendLength = updatedKeysAndValues.length();
if (appendLength >= bufferCapacity - needLen) {
*status = U_BUFFER_OVERFLOW_ERROR;
return needLen + appendLength;
}
needLen += updatedKeysAndValues.extract(
startSearchHere, bufferCapacity - needLen, *status);
U_ASSERT(*status != U_STRING_NOT_TERMINATED_WARNING);
return needLen;
}

/* ### ID parsing implementation **************************************************/
5 changes: 5 additions & 0 deletions deps/icu-small/source/common/unicode/docmain.h
Original file line number Diff line number Diff line change
@@ -143,6 +143,11 @@
* <td>icu::MessageFormat</td>
* </tr>
* <tr>
* <td>List Formatting</td>
* <td>ulistformatter.h</td>
* <td>icu::ListFormatter</td>
* </tr>
* <tr>
* <td>Number Formatting<br/>(includes currency and unit formatting)</td>
* <td>unumberformatter.h, unum.h</td>
* <td>icu::number::NumberFormatter (ICU 60+) or icu::NumberFormat (older versions)</td>
1 change: 1 addition & 0 deletions deps/icu-small/source/common/unicode/urename.h
Original file line number Diff line number Diff line change
@@ -1137,6 +1137,7 @@
#define ulocimp_toLanguageTag U_ICU_ENTRY_POINT_RENAME(ulocimp_toLanguageTag)
#define ulocimp_toLegacyKey U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyKey)
#define ulocimp_toLegacyType U_ICU_ENTRY_POINT_RENAME(ulocimp_toLegacyType)
#define ultag_getTKeyStart U_ICU_ENTRY_POINT_RENAME(ultag_getTKeyStart)
#define ultag_isExtensionSubtags U_ICU_ENTRY_POINT_RENAME(ultag_isExtensionSubtags)
#define ultag_isLanguageSubtag U_ICU_ENTRY_POINT_RENAME(ultag_isLanguageSubtag)
#define ultag_isPrivateuseValueSubtags U_ICU_ENTRY_POINT_RENAME(ultag_isPrivateuseValueSubtags)
6 changes: 3 additions & 3 deletions deps/icu-small/source/common/unicode/uvernum.h
Original file line number Diff line number Diff line change
@@ -66,7 +66,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.6
*/
#define U_ICU_VERSION_MINOR_NUM 1
#define U_ICU_VERSION_MINOR_NUM 2

/** The current ICU patchlevel version as an integer.
* This value will change in the subsequent releases of ICU
@@ -139,7 +139,7 @@
* This value will change in the subsequent releases of ICU
* @stable ICU 2.4
*/
#define U_ICU_VERSION "68.1"
#define U_ICU_VERSION "68.2"

/**
* The current ICU library major version number as a string, for library name suffixes.
@@ -158,7 +158,7 @@
/** Data version in ICU4C.
* @internal ICU 4.4 Internal Use Only
**/
#define U_ICU_DATA_VERSION "68.1"
#define U_ICU_DATA_VERSION "68.2"
#endif /* U_HIDE_INTERNAL_API */

/*===========================================================================
Loading