diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4c48caa007f9f3..61fbc6c8f998a0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,7 +30,8 @@ release.
-13.9.0
+13.10.0
+13.9.0
13.8.0
13.7.0
13.6.0
diff --git a/Makefile b/Makefile
index 34cdec7f7767b5..d1705fdc49d118 100644
--- a/Makefile
+++ b/Makefile
@@ -1165,6 +1165,7 @@ bench-addons-clean:
.PHONY: lint-md-rollup
lint-md-rollup:
+ $(RM) tools/.*mdlintstamp
cd tools/node-lint-md-cli-rollup && npm install
cd tools/node-lint-md-cli-rollup && npm run build-node
@@ -1177,28 +1178,23 @@ lint-md-clean:
lint-md-build:
$(warning "Deprecated no-op target 'lint-md-build'")
-LINT_MD_DOC_FILES = $(shell find doc -type f -name '*.md')
-run-lint-doc-md = tools/lint-md.js -q -f $(LINT_MD_DOC_FILES)
-# Lint all changed markdown files under doc/
-tools/.docmdlintstamp: $(LINT_MD_DOC_FILES)
- @echo "Running Markdown linter on docs..."
- @$(call available-node,$(run-lint-doc-md))
- @touch $@
+ifeq ("$(wildcard tools/.mdlintstamp)","")
+ LINT_MD_NEWER =
+else
+ LINT_MD_NEWER = -newer tools/.mdlintstamp
+endif
-LINT_MD_TARGETS = src lib benchmark test tools/doc tools/icu
-LINT_MD_ROOT_DOCS := $(wildcard *.md)
-LINT_MD_MISC_FILES := $(shell find $(LINT_MD_TARGETS) -type f \
- ! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md') \
- $(LINT_MD_ROOT_DOCS)
-run-lint-misc-md = tools/lint-md.js -q -f $(LINT_MD_MISC_FILES)
-# Lint other changed markdown files maintained by us
-tools/.miscmdlintstamp: $(LINT_MD_MISC_FILES)
- @echo "Running Markdown linter on misc docs..."
- @$(call available-node,$(run-lint-misc-md))
+LINT_MD_TARGETS = doc src lib benchmark test tools/doc tools/icu $(wildcard *.md)
+LINT_MD_FILES = $(shell find $(LINT_MD_TARGETS) -type f \
+ ! -path '*node_modules*' ! -path 'test/fixtures/*' -name '*.md' \
+ $(LINT_MD_NEWER))
+run-lint-md = tools/lint-md.js -q -f --no-stdout $(LINT_MD_FILES)
+# Lint all changed markdown files maintained by us
+tools/.mdlintstamp: $(LINT_MD_FILES)
+ @echo "Running Markdown linter..."
+ @$(call available-node,$(run-lint-md))
@touch $@
-tools/.mdlintstamp: tools/.miscmdlintstamp tools/.docmdlintstamp
-
.PHONY: lint-md
# Lints the markdown documents maintained by us in the codebase.
lint-md: | tools/.mdlintstamp
diff --git a/README.md b/README.md
index 07d6ad4e7ed039..657fc478a37e5b 100644
--- a/README.md
+++ b/README.md
@@ -165,12 +165,8 @@ For information about the governance of the Node.js project, see
**Daniel Bevenius** <daniel.bevenius@gmail.com> (he/him)
* [fhinkel](/~https://github.com/fhinkel) -
**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her)
-* [Fishrock123](/~https://github.com/Fishrock123) -
-**Jeremiah Senkpiel** <fishrock123@rocketmail.com>
* [gabrielschulhof](/~https://github.com/gabrielschulhof) -
**Gabriel Schulhof** <gabriel.schulhof@intel.com>
-* [gireeshpunathil](/~https://github.com/gireeshpunathil) -
-**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him)
* [jasnell](/~https://github.com/jasnell) -
**James M Snell** <jasnell@gmail.com> (he/him)
* [joyeecheung](/~https://github.com/joyeecheung) -
@@ -200,8 +196,12 @@ For information about the governance of the Node.js project, see
**Chris Dickinson** <christopher.s.dickinson@gmail.com>
* [evanlucas](/~https://github.com/evanlucas) -
**Evan Lucas** <evanlucas@me.com> (he/him)
+* [Fishrock123](/~https://github.com/Fishrock123) -
+**Jeremiah Senkpiel** <fishrock123@rocketmail.com> (he/they)
* [gibfahn](/~https://github.com/gibfahn) -
**Gibson Fahnestock** <gibfahn@gmail.com> (he/him)
+* [gireeshpunathil](/~https://github.com/gireeshpunathil) -
+**Gireesh Punathil** <gpunathi@in.ibm.com> (he/him)
* [indutny](/~https://github.com/indutny) -
**Fedor Indutny** <fedor.indutny@gmail.com>
* [isaacs](/~https://github.com/isaacs) -
@@ -239,8 +239,6 @@ For information about the governance of the Node.js project, see
**Anto Aravinth** <anto.aravinth.cse@gmail.com> (he/him)
* [apapirovski](/~https://github.com/apapirovski) -
**Anatoli Papirovski** <apapirovski@mac.com> (he/him)
-* [aqrln](/~https://github.com/aqrln) -
-**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him)
* [bcoe](/~https://github.com/bcoe) -
**Ben Coe** <bencoe@gmail.com> (he/him)
* [bengl](/~https://github.com/bengl) -
@@ -283,8 +281,6 @@ For information about the governance of the Node.js project, see
**Hitesh Kanwathirtha** <digitalinfinity@gmail.com> (he/him)
* [edsadr](/~https://github.com/edsadr) -
**Adrian Estrada** <edsadr@gmail.com> (he/him)
-* [eljefedelrodeodeljefe](/~https://github.com/eljefedelrodeodeljefe) -
-**Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com>
* [eugeneo](/~https://github.com/eugeneo) -
**Eugene Ostroukhov** <eostroukhov@google.com>
* [evanlucas](/~https://github.com/evanlucas) -
@@ -292,7 +288,7 @@ For information about the governance of the Node.js project, see
* [fhinkel](/~https://github.com/fhinkel) -
**Franziska Hinkelmann** <franziska.hinkelmann@gmail.com> (she/her)
* [Fishrock123](/~https://github.com/Fishrock123) -
-**Jeremiah Senkpiel** <fishrock123@rocketmail.com>
+**Jeremiah Senkpiel** <fishrock123@rocketmail.com> (he/they)
* [gabrielschulhof](/~https://github.com/gabrielschulhof) -
**Gabriel Schulhof** <gabriel.schulhof@intel.com>
* [gdams](/~https://github.com/gdams) -
@@ -323,8 +319,6 @@ For information about the governance of the Node.js project, see
**Jackson Tian** <shyvo1987@gmail.com>
* [jasnell](/~https://github.com/jasnell) -
**James M Snell** <jasnell@gmail.com> (he/him)
-* [jbergstroem](/~https://github.com/jbergstroem) -
-**Johan Bergström** <bugs@bergstroem.nu>
* [jdalton](/~https://github.com/jdalton) -
**John-David Dalton** <john.david.dalton@gmail.com>
* [jkrems](/~https://github.com/jkrems) -
@@ -333,8 +327,6 @@ For information about the governance of the Node.js project, see
**João Reis** <reis@janeasystems.com>
* [joyeecheung](/~https://github.com/joyeecheung) -
**Joyee Cheung** <joyeec9h3@gmail.com> (she/her)
-* [julianduque](/~https://github.com/julianduque) -
-**Julian Duque** <julianduquej@gmail.com> (he/him)
* [JungMinu](/~https://github.com/JungMinu) -
**Minwoo Jung** <nodecorelab@gmail.com> (he/him)
* [kfarnung](/~https://github.com/kfarnung) -
@@ -349,8 +341,6 @@ For information about the governance of the Node.js project, see
**Luigi Pinca** <luigipinca@gmail.com> (he/him)
* [lundibundi](/~https://github.com/lundibundi) -
**Denys Otrishko** <shishugi@gmail.com> (he/him)
-* [maclover7](/~https://github.com/maclover7) -
-**Jon Moss** <me@jonathanmoss.me> (he/him)
* [mafintosh](/~https://github.com/mafintosh) -
**Mathias Buus** <mathiasbuus@gmail.com> (he/him)
* [mcollina](/~https://github.com/mcollina) -
@@ -367,8 +357,6 @@ For information about the governance of the Node.js project, see
**Brian White** <mscdex@mscdex.net>
* [MylesBorins](/~https://github.com/MylesBorins) -
**Myles Borins** <myles.borins@gmail.com> (he/him)
-* [not-an-aardvark](/~https://github.com/not-an-aardvark) -
-**Teddy Katz** <teddy.katz@gmail.com> (he/him)
* [ofrobots](/~https://github.com/ofrobots) -
**Ali Ijaz Sheikh** <ofrobots@google.com> (he/him)
* [oyyd](/~https://github.com/oyyd) -
@@ -415,8 +403,6 @@ For information about the governance of the Node.js project, see
**Michaël Zasso** <targos@protonmail.com> (he/him)
* [thefourtheye](/~https://github.com/thefourtheye) -
**Sakthipriyan Vairamani** <thechargingvolcano@gmail.com> (he/him)
-* [thekemkid](/~https://github.com/thekemkid) -
-**Glen Keane** <glenkeane.94@gmail.com> (he/him)
* [TimothyGu](/~https://github.com/TimothyGu) -
**Tiancheng "Timothy" Gu** <timothygu99@gmail.com> (he/him)
* [tniessen](/~https://github.com/tniessen) -
@@ -450,6 +436,8 @@ For information about the governance of the Node.js project, see
**Andras** <andras@kinvey.com>
* [AnnaMag](/~https://github.com/AnnaMag) -
**Anna M. Kedzierska** <anna.m.kedzierska@gmail.com>
+* [aqrln](/~https://github.com/aqrln) -
+**Alexey Orlenko** <eaglexrlnk@gmail.com> (he/him)
* [brendanashworth](/~https://github.com/brendanashworth) -
**Brendan Ashworth** <brendan.ashworth@me.com>
* [calvinmetcalf](/~https://github.com/calvinmetcalf) -
@@ -458,10 +446,14 @@ For information about the governance of the Node.js project, see
**Chris Dickinson** <christopher.s.dickinson@gmail.com>
* [DavidCai1993](/~https://github.com/DavidCai1993) -
**David Cai** <davidcai1993@yahoo.com> (he/him)
+* [eljefedelrodeodeljefe](/~https://github.com/eljefedelrodeodeljefe) -
+**Robert Jefe Lindstaedt** <robert.lindstaedt@gmail.com>
* [estliberitas](/~https://github.com/estliberitas) -
**Alexander Makarenko** <estliberitas@gmail.com>
* [firedfox](/~https://github.com/firedfox) -
**Daniel Wang** <wangyang0123@gmail.com>
+* [glentiki](/~https://github.com/glentiki) -
+**Glen Keane** <glenkeane.94@gmail.com> (he/him)
* [imran-iq](/~https://github.com/imran-iq) -
**Imran Iqbal** <imran@imraniqbal.org>
* [imyller](/~https://github.com/imyller) -
@@ -470,16 +462,22 @@ For information about the governance of the Node.js project, see
**Isaac Z. Schlueter** <i@izs.me>
* [jasongin](/~https://github.com/jasongin) -
**Jason Ginchereau** <jasongin@microsoft.com>
+* [jbergstroem](/~https://github.com/jbergstroem) -
+**Johan Bergström** <bugs@bergstroem.nu>
* [jhamhader](/~https://github.com/jhamhader) -
**Yuval Brik** <yuval@brik.org.il>
* [joshgav](/~https://github.com/joshgav) -
**Josh Gavant** <josh.gavant@outlook.com>
+* [julianduque](/~https://github.com/julianduque) -
+**Julian Duque** <julianduquej@gmail.com> (he/him)
* [kunalspathak](/~https://github.com/kunalspathak) -
**Kunal Pathak** <kunal.pathak@microsoft.com>
* [lucamaraschi](/~https://github.com/lucamaraschi) -
**Luca Maraschi** <luca.maraschi@gmail.com> (he/him)
* [lxe](/~https://github.com/lxe) -
**Aleksey Smolenchuk** <lxe@lxe.co>
+* [maclover7](/~https://github.com/maclover7) -
+**Jon Moss** <me@jonathanmoss.me> (he/him)
* [matthewloring](/~https://github.com/matthewloring) -
**Matthew Loring** <mattloring@google.com>
* [micnic](/~https://github.com/micnic) -
@@ -488,6 +486,8 @@ For information about the governance of the Node.js project, see
**Mikeal Rogers** <mikeal.rogers@gmail.com>
* [monsanto](/~https://github.com/monsanto) -
**Christopher Monsanto** <chris@monsan.to>
+* [not-an-aardvark](/~https://github.com/not-an-aardvark) -
+**Teddy Katz** <teddy.katz@gmail.com> (he/him)
* [Olegas](/~https://github.com/Olegas) -
**Oleg Elifantiev** <oleg@elifantiev.ru>
* [orangemocha](/~https://github.com/orangemocha) -
@@ -546,8 +546,6 @@ GPG keys used to sign Node.js releases:
`77984A986EBC2AA786BC0F66B01FBB92821C587A`
* **James M Snell** <jasnell@keybase.io>
`71DCFD284A79C3B38668286BC97EC7A07EDE3FC1`
-* **Jeremiah Senkpiel** <fishrock@keybase.io>
-`FD3A5288F042B6850C66B31F09FE44734EB7990E`
* **Michaël Zasso** <targos@protonmail.com>
`8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600`
* **Myles Borins** <myles.borins@gmail.com>
@@ -568,7 +566,6 @@ gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434
gpg --keyserver pool.sks-keyservers.net --recv-keys B9AE9905FFD7803F25714661B63B535A4C206CA9
gpg --keyserver pool.sks-keyservers.net --recv-keys 77984A986EBC2AA786BC0F66B01FBB92821C587A
gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1
-gpg --keyserver pool.sks-keyservers.net --recv-keys FD3A5288F042B6850C66B31F09FE44734EB7990E
gpg --keyserver pool.sks-keyservers.net --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600
gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8
gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D
@@ -580,6 +577,8 @@ use these keys to verify a downloaded file.
Other keys used to sign some previous releases:
+* **Jeremiah Senkpiel** <fishrock@keybase.io>
+`FD3A5288F042B6850C66B31F09FE44734EB7990E`
* **Chris Dickinson** <christopher.s.dickinson@gmail.com>
`9554F04D7259F04124DE6B476D5A82AC7E37093B`
* **Isaac Z. Schlueter** <i@izs.me>
diff --git a/benchmark/async_hooks/async-resource-vs-destroy.js b/benchmark/async_hooks/async-resource-vs-destroy.js
index 4464dd5f93e7de..c9b9a81c5b7c7f 100644
--- a/benchmark/async_hooks/async-resource-vs-destroy.js
+++ b/benchmark/async_hooks/async-resource-vs-destroy.js
@@ -8,7 +8,8 @@ const common = require('../common.js');
const {
createHook,
executionAsyncResource,
- executionAsyncId
+ executionAsyncId,
+ AsyncLocalStorage
} = require('async_hooks');
const { createServer } = require('http');
@@ -18,7 +19,7 @@ const connections = 500;
const path = '/';
const bench = common.createBenchmark(main, {
- type: ['async-resource', 'destroy'],
+ type: ['async-resource', 'destroy', 'async-local-storage'],
asyncMethod: ['callbacks', 'async'],
n: [1e6]
});
@@ -102,6 +103,35 @@ function buildDestroy(getServe) {
}
}
+function buildAsyncLocalStorage(getServe) {
+ const asyncLocalStorage = new AsyncLocalStorage();
+ const server = createServer((req, res) => {
+ asyncLocalStorage.runSyncAndReturn({}, () => {
+ getServe(getCLS, setCLS)(req, res);
+ });
+ });
+
+ return {
+ server,
+ close
+ };
+
+ function getCLS() {
+ const store = asyncLocalStorage.getStore();
+ return store.state;
+ }
+
+ function setCLS(state) {
+ const store = asyncLocalStorage.getStore();
+ store.state = state;
+ }
+
+ function close() {
+ asyncLocalStorage.disable();
+ server.close();
+ }
+}
+
function getServeAwait(getCLS, setCLS) {
return async function serve(req, res) {
setCLS(Math.random());
@@ -126,7 +156,8 @@ function getServeCallbacks(getCLS, setCLS) {
const types = {
'async-resource': buildCurrentResource,
- 'destroy': buildDestroy
+ 'destroy': buildDestroy,
+ 'async-local-storage': buildAsyncLocalStorage
};
const asyncMethods = {
diff --git a/benchmark/tls/throughput.js b/benchmark/tls/throughput.js
index a8f2d19649d04a..727d20e460008d 100644
--- a/benchmark/tls/throughput.js
+++ b/benchmark/tls/throughput.js
@@ -3,7 +3,7 @@ const common = require('../common.js');
const bench = common.createBenchmark(main, {
dur: [5],
type: ['buf', 'asc', 'utf'],
- size: [2, 1024, 1024 * 1024]
+ size: [2, 1024, 1024 * 1024, 4 * 1024 * 1024, 16 * 1024 * 1024]
});
const fixtures = require('../../test/common/fixtures');
diff --git a/common.gypi b/common.gypi
index b8a37491893c91..0f52e138ca2fe0 100644
--- a/common.gypi
+++ b/common.gypi
@@ -39,7 +39,7 @@
# Reset this number to 0 on major V8 upgrades.
# Increment by one for each non-official patch applied to deps/v8.
- 'v8_embedder_string': '-node.28',
+ 'v8_embedder_string': '-node.29',
##### V8 defaults for Node.js #####
diff --git a/deps/openssl/openssl/crypto/rand/rand_unix.c b/deps/openssl/openssl/crypto/rand/rand_unix.c
index 69efcdeed752d7..315af610f849d9 100644
--- a/deps/openssl/openssl/crypto/rand/rand_unix.c
+++ b/deps/openssl/openssl/crypto/rand/rand_unix.c
@@ -282,12 +282,58 @@ static ssize_t sysctl_random(char *buf, size_t buflen)
# if defined(OPENSSL_RAND_SEED_GETRANDOM)
# if defined(__linux) && !defined(__NR_getrandom)
-# if defined(__arm__) && defined(__NR_SYSCALL_BASE)
+# if defined(__arm__)
# define __NR_getrandom (__NR_SYSCALL_BASE+384)
# elif defined(__i386__)
# define __NR_getrandom 355
-# elif defined(__x86_64__) && !defined(__ILP32__)
-# define __NR_getrandom 318
+# elif defined(__x86_64__)
+# if defined(__ILP32__)
+# define __NR_getrandom (__X32_SYSCALL_BIT + 318)
+# else
+# define __NR_getrandom 318
+# endif
+# elif defined(__xtensa__)
+# define __NR_getrandom 338
+# elif defined(__s390__) || defined(__s390x__)
+# define __NR_getrandom 349
+# elif defined(__bfin__)
+# define __NR_getrandom 389
+# elif defined(__powerpc__)
+# define __NR_getrandom 359
+# elif defined(__mips__) || defined(__mips64)
+# if _MIPS_SIM == _MIPS_SIM_ABI32
+# define __NR_getrandom (__NR_Linux + 353)
+# elif _MIPS_SIM == _MIPS_SIM_ABI64
+# define __NR_getrandom (__NR_Linux + 313)
+# elif _MIPS_SIM == _MIPS_SIM_NABI32
+# define __NR_getrandom (__NR_Linux + 317)
+# endif
+# elif defined(__hppa__)
+# define __NR_getrandom (__NR_Linux + 339)
+# elif defined(__sparc__)
+# define __NR_getrandom 347
+# elif defined(__ia64__)
+# define __NR_getrandom 1339
+# elif defined(__alpha__)
+# define __NR_getrandom 511
+# elif defined(__sh__)
+# if defined(__SH5__)
+# define __NR_getrandom 373
+# else
+# define __NR_getrandom 384
+# endif
+# elif defined(__avr32__)
+# define __NR_getrandom 317
+# elif defined(__microblaze__)
+# define __NR_getrandom 385
+# elif defined(__m68k__)
+# define __NR_getrandom 352
+# elif defined(__cris__)
+# define __NR_getrandom 356
+# elif defined(__aarch64__)
+# define __NR_getrandom 278
+# else /* generic */
+# define __NR_getrandom 278
# endif
# endif
diff --git a/deps/v8/src/objects/dictionary-inl.h b/deps/v8/src/objects/dictionary-inl.h
index 18b2ee67a4db59..3a5b8cb3c7e201 100644
--- a/deps/v8/src/objects/dictionary-inl.h
+++ b/deps/v8/src/objects/dictionary-inl.h
@@ -61,13 +61,13 @@ BaseNameDictionary::BaseNameDictionary(Address ptr)
: Dictionary(ptr) {}
template
-void BaseNameDictionary::SetNextEnumerationIndex(int index) {
- DCHECK_NE(0, index);
+void BaseNameDictionary::set_next_enumeration_index(int index) {
+ DCHECK_LT(0, index);
this->set(kNextEnumerationIndexIndex, Smi::FromInt(index));
}
template
-int BaseNameDictionary::NextEnumerationIndex() {
+int BaseNameDictionary::next_enumeration_index() {
return Smi::ToInt(this->get(kNextEnumerationIndexIndex));
}
diff --git a/deps/v8/src/objects/dictionary.h b/deps/v8/src/objects/dictionary.h
index 35137c7d945430..eb15a77e33e63b 100644
--- a/deps/v8/src/objects/dictionary.h
+++ b/deps/v8/src/objects/dictionary.h
@@ -120,10 +120,6 @@ class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) BaseNameDictionary
static const int kObjectHashIndex = kNextEnumerationIndexIndex + 1;
static const int kEntryValueIndex = 1;
- // Accessors for next enumeration index.
- inline void SetNextEnumerationIndex(int index);
- inline int NextEnumerationIndex();
-
inline void SetHash(int hash);
inline int Hash() const;
@@ -138,6 +134,13 @@ class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) BaseNameDictionary
V8_WARN_UNUSED_RESULT static ExceptionStatus CollectKeysTo(
Handle dictionary, KeyAccumulator* keys);
+ // Allocate the next enumeration index. Possibly updates all enumeration
+ // indices in the table.
+ static int NextEnumerationIndex(Isolate* isolate, Handle dictionary);
+ // Accessors for next enumeration index.
+ inline int next_enumeration_index();
+ inline void set_next_enumeration_index(int index);
+
// Return the key indices sorted by its enumeration index.
static Handle IterationIndices(Isolate* isolate,
Handle dictionary);
@@ -149,10 +152,6 @@ class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) BaseNameDictionary
Handle storage, KeyCollectionMode mode,
KeyAccumulator* accumulator);
- // Ensure enough space for n additional elements.
- static Handle EnsureCapacity(Isolate* isolate,
- Handle dictionary, int n);
-
V8_WARN_UNUSED_RESULT static Handle AddNoUpdateNextEnumerationIndex(
Isolate* isolate, Handle dictionary, Key key,
Handle |