Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

util: runtime deprecate promisify-ing a function returning a Promise #49609

Merged
merged 3 commits into from
Sep 18, 2023

Conversation

aduh95
Copy link
Contributor

@aduh95 aduh95 commented Sep 11, 2023

My goal would be for this deprecation to never reach EOL, and stay as runtime deprecated forever. The warning it produces should help folks who run into the linked issue figure out what's happening.

// file.js

const promisified = promisify(async () => {});

promisified();

node --trace-warnings file.js will show at file.js:5:1 – so not where the promisify call happened, but where the promisified function was called. Hopefully that will give enough info to debug it.

Fixes: #49607

@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. util Issues and PRs related to the built-in util module. labels Sep 11, 2023
@dnalborczyk
Copy link
Contributor

I believe it is not a good pattern to rely on the constructor. The problem is also that this does not determine a function returning a Promise () => Promise.resolve(). we would probably also need to check for similar constructors, e.g. GeneratorFunction or AsyncGeneratorFunction, but I think the same issue applies here as well, it is just syntactic sugar.

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 11, 2023

It's true that we will never catch all the instances where promisify is misused, but it's only emitting a warning, I don't think we need to worry too much about false negative – as long as there are no false positive, it should already be helpful.

@dnalborczyk
Copy link
Contributor

dnalborczyk commented Sep 11, 2023

True, it's just a warning, but you are preventing anyone from using async functions with a node style callback - albeit likely a bad pattern. async function foo(nodeSyleCallback) {}. That said, I believe that's not node.js' responsibility to determine. As far as I know node.js is not doing those kind of checks anywhere in the codebase -- nor should it.

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 11, 2023

I'm not preventing anything, the function will still work as before. The only difference is that if it's passed to promisify, a warning will be emitted (which is not going to break anyone).
I agree that would indeed be a bad pattern, and on top of that using promisify is itself more a workaround than a great API, so all in all, I think it's fine to make that use-case less convenient.

@dnalborczyk
Copy link
Contributor

I disagree, I think this is a matter of principle.

I'm not preventing anything, the function will still work as before.

ok, let me rephrase, you are nagging everyone using such a function with promisify.

and on top of that using promisify is itself more a workaround than a great API,

I don't think that's a good justification to introduce this either. 🤷‍♂️

what are you going to do if someone files an issue claiming promisify(AsyncGeneratorFunction) does not throw?

@dnalborczyk
Copy link
Contributor

dnalborczyk commented Sep 11, 2023

this does not make it an async function either:

function foo() {}
foo.constructor = 'AsyncFunction'

but the check would treat it as such.

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 11, 2023

this does not make it an async function either:

function foo() {}
foo.constructor = 'AsyncFunction'

but the check would treat it as such.

It wouldn't, let me add a test to demonstrate that.

@dnalborczyk
Copy link
Contributor

dnalborczyk commented Sep 11, 2023

It wouldn't, let me add a test to demonstrate that.

ah, sorry, didn't re-check the code, I thought it was checking for the constructor name (string) actually. #49609 (comment)

Regardless, I still think this is a bad idea.

Copy link
Contributor

@LiviaMedeiros LiviaMedeiros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This warning makes sense, for example, in the context of node:fs and node:fs/promises.
Callback-based functions have the same names as Promise-based, and it's common to see both import fs from 'fs'; and import fs from 'fs/promises';, hence it's hard to tell what writeFile() or fs.writeFile() is without context or looking up.
Because of that, it's easy to mistakenly promisify fsPromises.writeFile or to forget to remove util.promisify while migrating from callbacks to promises.

Another error-prone thing is promisify(promisify(fn)). If util.promisify() is called on something that was already promisified by util.promisify(), it will return the once-promisified function that was stored in [kCustomPromisifiedSymbol]. However, if the first promisification will be done by any other implementation that returns AsyncFunction or rewritten as native async function, this node:util-specific mechanism will stop working without any notice.

If this warning would help someone to catch such errors, it's worth the overhead and questionable pattern.

The check can be made more strict by adding GeneratorFunction and AsyncGeneratorFunction or !== Function, but I can't come up with scenario with generator promisified by mistake.

Copy link
Member

@benjamingr benjamingr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code LGTM, from a use case point of view I'm wondering if it wouldn't be better to warn if a promise is returned from the function rather than when a function is passed to promisify

@aduh95 aduh95 changed the title util: emit a warning when calling promisify on an AsyncFunction util: emit a warning when calling promisify on a function returning a Promise Sep 13, 2023
@lukiano
Copy link

lukiano commented Sep 14, 2023

Would it be better to have something like

const returnValue = ReflectApply(original, this, args);
if (isPromise(returnValue)) {
  process.emitWarning('Calling promisify on a function that returns a Promise is likely a mistake.');
  returnValue.catch((err) => reject(err));
}

to avoid having an unhandledRejection?

const util = require('util');
function foo() {
  return Promise.reject(new Error('boom'));
}
function foo2() {
  throw new Error('boom')
}
util.promisify(foo)().catch(() => console.log('not ok'));

Ideally, we get not ok with bothfoo and foo2.

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 14, 2023

@lukiano to avoid having an unhandled rejection, folks should not use promisify but call the function directly and await its result. I understand what you are trying to do, but I think it's taking it one step too far, and it would be a potential breaking change if some folks rely on the current behavior for some reason.

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 14, 2023

Thinking a bit more about this, I think this naked warning is a bit weird, I've went ahead and open #49647 to make this follow the usual deprecation process, because that's more or less what this warning is: a deprecation warning. When/if the other PR lands, I'll update this one.

@aduh95 aduh95 added semver-major PRs that contain breaking changes and should be released in the next major version. blocked PRs that are blocked by other issues or PRs. deprecations Issues and PRs related to deprecations. labels Sep 14, 2023
@lukiano
Copy link

lukiano commented Sep 14, 2023

It certainly makes me think of functions that both provide a callback and return a value. Often the value returned is a way to cancel the action (e.g. timeouts), which is addressed by AbortSignal in the promisified version.

Others, like stream.Writable.write() provide different meanings to both outputs. In this one in particular, the callback is called when the data is flushed, and the return value signals if it accepts more data. Likely a promisifed version wouldn't use either, but wait for the drain event.

Should we deprecate using promisify on any function that returns a value, even if it isn't a Promise?

@aduh95
Copy link
Contributor Author

aduh95 commented Sep 14, 2023

All functions return a value – except if it throws. What this deprecation proposal is attempting to do is help folks who "promisify" async functions, because it's likely a mistake and can be hard to debug (and as you said, rejections would not be handled). Calling promisify on a function that returns a value that might be useful is maybe a bad pattern (subjective), but it's not as likely to be a mistake, and does not have the problem of unhandled promise rejections.

@aduh95 aduh95 force-pushed the promisify-async-functions branch from d28fd83 to f9726f9 Compare September 16, 2023 10:02
@aduh95
Copy link
Contributor Author

aduh95 commented Sep 16, 2023

@nodejs/tsc since this is semver-major PRs that contain breaking changes and should be released in the next major version.

@aduh95 aduh95 changed the title util: emit a warning when calling promisify on a function returning a Promise til: runtime deprecate promisify-ing a function returning a Promise Sep 16, 2023
@aduh95 aduh95 removed the blocked PRs that are blocked by other issues or PRs. label Sep 16, 2023
@LiviaMedeiros LiviaMedeiros changed the title til: runtime deprecate promisify-ing a function returning a Promise util: runtime deprecate promisify-ing a function returning a Promise Sep 16, 2023
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@nodejs-github-bot
Copy link
Collaborator

@aduh95 aduh95 added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Sep 16, 2023
@aduh95 aduh95 added the commit-queue Add this label to land a pull request using GitHub Actions. label Sep 18, 2023
@nodejs-github-bot nodejs-github-bot removed the commit-queue Add this label to land a pull request using GitHub Actions. label Sep 18, 2023
@nodejs-github-bot nodejs-github-bot merged commit ccca547 into nodejs:main Sep 18, 2023
30 checks passed
@nodejs-github-bot
Copy link
Collaborator

Landed in ccca547

@aduh95 aduh95 deleted the promisify-async-functions branch September 18, 2023 12:30
RafaelGSS added a commit that referenced this pull request Sep 26, 2023
Notable Changes:

TODO

Semver-Major Commits:

* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 9, 2023
Notable Changes:

TODO

Semver-Major Commits:

* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit to RafaelGSS/node that referenced this pull request Oct 9, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) nodejs#45684
esm:
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) nodejs#49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) nodejs#49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) nodejs#50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) nodejs#47653
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) nodejs#49830
stream:
  * optimize Writable (Robert Nagy) nodejs#50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) nodejs#47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) nodejs#49950

Semver-Major Commits:

* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) nodejs#49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) nodejs#49140
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) nodejs#48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) nodejs#46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) nodejs#42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) nodejs#47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) nodejs#48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) nodejs#47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) nodejs#47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) nodejs#48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) nodejs#48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) nodejs#47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) nodejs#48501
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) nodejs#47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) nodejs#47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) nodejs#49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) nodejs#49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) nodejs#49896
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) nodejs#49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) nodejs#49720

PR-URL: nodejs#49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit to RafaelGSS/node that referenced this pull request Oct 9, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) nodejs#45684
esm:
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) nodejs#49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) nodejs#49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) nodejs#50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) nodejs#47653
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) nodejs#49830
stream:
  * optimize Writable (Robert Nagy) nodejs#50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) nodejs#47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) nodejs#49950

Semver-Major Commits:

* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) nodejs#49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) nodejs#49140
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) nodejs#48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) nodejs#46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) nodejs#42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) nodejs#47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) nodejs#48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) nodejs#47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) nodejs#47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) nodejs#48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) nodejs#48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) nodejs#47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) nodejs#48501
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) nodejs#47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) nodejs#47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) nodejs#49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) nodejs#49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) nodejs#49896
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) nodejs#49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) nodejs#49720

PR-URL: nodejs#49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 10, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 10, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #49639
* (SEMVER-MAJOR) drop support for Visual Studio 2019 (Michaël Zasso) #49051
* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) bump minimum ICU version to 73 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 8ec2651fbdd8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 89b3702c92b0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick de9a5de2274f (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick b5b5d6c31bb0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 93b1a74cbc9b (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #49639
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #49639
* (SEMVER-MAJOR) remove usage of a C++20 feature from V8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) avoid compilation error with ASan (Michaël Zasso) #49639
* (SEMVER-MAJOR) disable V8 concurrent sparkplug compilation (Michaël Zasso) #49639
* (SEMVER-MAJOR) silence irrelevant V8 warning (Michaël Zasso) #49639
* (SEMVER-MAJOR) always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 to 11.8.172.13 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) update usage of always on Atomics API (Michaël Zasso) #49639
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 120 (Michaël Zasso) #49639
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) skip v8-updates/test-linux-perf (Michaël Zasso) #49639
* (SEMVER-MAJOR) skip test-tick-processor-arguments on SmartOS (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt REPL test to V8 changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt test-fs-write to V8 internal changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) update flag to disable SharedArrayBuffer (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt debugger tests to V8 11.4 (Philip Pfaffe) #49639
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) add new V8 headers to distribution (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.7 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.6 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.5 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.4 (Michaël Zasso) #49639
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 10, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #49639
* (SEMVER-MAJOR) drop support for Visual Studio 2019 (Michaël Zasso) #49051
* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) bump minimum ICU version to 73 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 8ec2651fbdd8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 89b3702c92b0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick de9a5de2274f (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick b5b5d6c31bb0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 93b1a74cbc9b (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #49639
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #49639
* (SEMVER-MAJOR) remove usage of a C++20 feature from V8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) avoid compilation error with ASan (Michaël Zasso) #49639
* (SEMVER-MAJOR) disable V8 concurrent sparkplug compilation (Michaël Zasso) #49639
* (SEMVER-MAJOR) silence irrelevant V8 warning (Michaël Zasso) #49639
* (SEMVER-MAJOR) always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 to 11.8.172.13 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) update usage of always on Atomics API (Michaël Zasso) #49639
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 120 (Michaël Zasso) #49639
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) skip v8-updates/test-linux-perf (Michaël Zasso) #49639
* (SEMVER-MAJOR) skip test-tick-processor-arguments on SmartOS (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt REPL test to V8 changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt test-fs-write to V8 internal changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) update flag to disable SharedArrayBuffer (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt debugger tests to V8 11.4 (Philip Pfaffe) #49639
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) add new V8 headers to distribution (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.7 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.6 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.5 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.4 (Michaël Zasso) #49639
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 15, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * use import attributes instead of import assertions (Antoine du Hamel) #50140
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
http:
  * (SEMVER-MAJOR) reduce parts in chunked response when corking (Robert Nagy) #50167
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) reset embedder string to "-node.0" (Michaël Zasso) #49639
* (SEMVER-MAJOR) drop support for Visual Studio 2019 (Michaël Zasso) #49051
* (SEMVER-MAJOR) bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) do not overwrite _writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) bump minimum ICU version to 73 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 8ec2651fbdd8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 89b3702c92b0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick de9a5de2274f (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick b5b5d6c31bb0 (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 93b1a74cbc9b (Michaël Zasso) #49639
* (SEMVER-MAJOR) V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #49639
* (SEMVER-MAJOR) patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #49639
* (SEMVER-MAJOR) remove usage of a C++20 feature from V8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) avoid compilation error with ASan (Michaël Zasso) #49639
* (SEMVER-MAJOR) disable V8 concurrent sparkplug compilation (Michaël Zasso) #49639
* (SEMVER-MAJOR) silence irrelevant V8 warning (Michaël Zasso) #49639
* (SEMVER-MAJOR) always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 to 11.8.172.13 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) reduce parts in chunked response when corking (Robert Nagy) #50167
* (SEMVER-MAJOR) update usage of always on Atomics API (Michaël Zasso) #49639
* (SEMVER-MAJOR) mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) only defer _final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) rename internal NAPI_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) update NODE_MODULE_VERSION to 120 (Michaël Zasso) #49639
* (SEMVER-MAJOR) throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) skip v8-updates/test-linux-perf (Michaël Zasso) #49639
* (SEMVER-MAJOR) skip test-tick-processor-arguments on SmartOS (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt REPL test to V8 changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt test-fs-write to V8 internal changes (Michaël Zasso) #49639
* (SEMVER-MAJOR) update flag to disable SharedArrayBuffer (Michaël Zasso) #49639
* (SEMVER-MAJOR) adapt debugger tests to V8 11.4 (Philip Pfaffe) #49639
* (SEMVER-MAJOR) disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) add new V8 headers to distribution (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.8 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.7 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.6 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.5 (Michaël Zasso) #49639
* (SEMVER-MAJOR) update V8 gypfiles for 11.4 (Michaël Zasso) #49639
* (SEMVER-MAJOR) runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 17, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * use import attributes instead of import assertions (Antoine du Hamel) #50140
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
http:
  * (SEMVER-MAJOR) reduce parts in chunked response when corking (Robert Nagy) #50167
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
  * (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) build: drop support for Visual Studio 2019 (Michaël Zasso) #49051
* (SEMVER-MAJOR) build: bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) crypto: do not overwrite \_writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) deps: bump minimum ICU version to 73 (Michaël Zasso) #49639
* (SEMVER-MAJOR) deps: update V8 to 11.8.172.13 (Michaël Zasso) #49639
* (SEMVER-MAJOR) deps: update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) events: validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) fs: adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) fs: add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) http: reduce parts in chunked response when corking (Robert Nagy) #50167
* (SEMVER-MAJOR) lib: mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) lib: remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) lib: add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) lib: runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) module: harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) net: do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) net: only defer \_final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) node-api: rename internal NAPI\_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) src: update NODE\_MODULE\_VERSION to 120 (Michaël Zasso) #49639
* (SEMVER-MAJOR) src: throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) src: throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) stream: use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) stream: use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) stream: use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) test\_runner: disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) test\_runner: support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) tls: use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) tls: use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) util: runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) vm: freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
RafaelGSS added a commit that referenced this pull request Oct 17, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) #45684
esm:
  * use import attributes instead of import assertions (Antoine du Hamel) #50140
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) #49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) #49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) #50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) #47653
http:
  * (SEMVER-MAJOR) reduce parts in chunked response when corking (Robert Nagy) #50167
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) #49830
  * (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
stream:
  * optimize Writable (Robert Nagy) #50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) #47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) #49950

Semver-Major Commits:

* (SEMVER-MAJOR) build: drop support for Visual Studio 2019 (Michaël Zasso) #49051
* (SEMVER-MAJOR) build: bump supported macOS and Xcode versions (Michaël Zasso) #49164
* (SEMVER-MAJOR) crypto: do not overwrite \_writableState.defaultEncoding (Tobias Nießen) #49140
* (SEMVER-MAJOR) deps: bump minimum ICU version to 73 (Michaël Zasso) #49639
* (SEMVER-MAJOR) deps: update V8 to 11.8.172.13 (Michaël Zasso) #49639
* (SEMVER-MAJOR) deps: update llhttp to 9.1.2 (Paolo Insogna) #48981
* (SEMVER-MAJOR) events: validate options of `on` and `once` (Deokjin Kim) #46018
* (SEMVER-MAJOR) fs: adjust `position` validation in reading methods (Livia Medeiros) #42835
* (SEMVER-MAJOR) fs: add globSync implementation (Moshe Atlow) #47653
* (SEMVER-MAJOR) http: reduce parts in chunked response when corking (Robert Nagy) #50167
* (SEMVER-MAJOR) lib: mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) #47497
* (SEMVER-MAJOR) lib: remove aix directory case for package reader (Yagiz Nizipli) #48605
* (SEMVER-MAJOR) lib: add `navigator.hardwareConcurrency` (Yagiz Nizipli) #47769
* (SEMVER-MAJOR) lib: runtime deprecate punycode (Yagiz Nizipli) #47202
* (SEMVER-MAJOR) module: harmonize error code between ESM and CJS (Antoine du Hamel) #48606
* (SEMVER-MAJOR) net: do not treat `server.maxConnections=0` as `Infinity` (ignoramous) #48276
* (SEMVER-MAJOR) net: only defer \_final call when connecting (Jason Zhang) #47385
* (SEMVER-MAJOR) node-api: rename internal NAPI\_VERSION definition (Chengzhong Wu) #48501
* (SEMVER-MAJOR) src: update NODE\_MODULE\_VERSION to 120 (Michaël Zasso) #49639
* (SEMVER-MAJOR) src: throw DOMException on cloning non-serializable objects (Chengzhong Wu) #47839
* (SEMVER-MAJOR) src: throw DataCloneError on transfering untransferable objects (Chengzhong Wu) #47604
* (SEMVER-MAJOR) stream: use private properties for strategies (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) stream: use private properties for encoding (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) stream: use private properties for compression (Yagiz Nizipli) #47218
* (SEMVER-MAJOR) test\_runner: disallow array in `run` options (Raz Luvaton) #49935
* (SEMVER-MAJOR) test\_runner: support passing globs (Moshe Atlow) #47653
* (SEMVER-MAJOR) tls: use `validateNumber` for `options.minDHSize` (Deokjin Kim) #49973
* (SEMVER-MAJOR) tls: use validateFunction for `options.checkServerIdentity` (Deokjin Kim) #49896
* (SEMVER-MAJOR) util: runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) #49609
* (SEMVER-MAJOR) vm: freeze `dependencySpecifiers` array (Antoine du Hamel) #49720

PR-URL: #49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
alexfernandez pushed a commit to alexfernandez/node that referenced this pull request Nov 1, 2023
PR-URL: nodejs#49609
Fixes: nodejs#49607
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
alexfernandez pushed a commit to alexfernandez/node that referenced this pull request Nov 1, 2023
Notable Changes:

doc:
  * promote fetch/webstreams from experimental to stable (Steven) nodejs#45684
esm:
  * use import attributes instead of import assertions (Antoine du Hamel) nodejs#50140
  * --experimental-default-type flag to flip module defaults (Geoffrey Booth) nodejs#49869
  * remove `globalPreload` hook (superseded by `initialize`) (Jacob Smith) nodejs#49144
fs:
  * add flush option to writeFile() functions (Colin Ihrig) nodejs#50009
  * (SEMVER-MAJOR) add globSync implementation (Moshe Atlow) nodejs#47653
http:
  * (SEMVER-MAJOR) reduce parts in chunked response when corking (Robert Nagy) nodejs#50167
lib:
  * (SEMVER-MINOR) add WebSocket client (Matthew Aitken) nodejs#49830
  * (SEMVER-MAJOR) add `navigator.hardwareConcurrency` (Yagiz Nizipli) nodejs#47769
stream:
  * optimize Writable (Robert Nagy) nodejs#50012
test_runner:
  * (SEMVER-MAJOR) support passing globs (Moshe Atlow) nodejs#47653
vm:
  * use default HDO when importModuleDynamically is not set (Joyee Cheung) nodejs#49950

Semver-Major Commits:

* (SEMVER-MAJOR) build: drop support for Visual Studio 2019 (Michaël Zasso) nodejs#49051
* (SEMVER-MAJOR) build: bump supported macOS and Xcode versions (Michaël Zasso) nodejs#49164
* (SEMVER-MAJOR) crypto: do not overwrite \_writableState.defaultEncoding (Tobias Nießen) nodejs#49140
* (SEMVER-MAJOR) deps: bump minimum ICU version to 73 (Michaël Zasso) nodejs#49639
* (SEMVER-MAJOR) deps: update V8 to 11.8.172.13 (Michaël Zasso) nodejs#49639
* (SEMVER-MAJOR) deps: update llhttp to 9.1.2 (Paolo Insogna) nodejs#48981
* (SEMVER-MAJOR) events: validate options of `on` and `once` (Deokjin Kim) nodejs#46018
* (SEMVER-MAJOR) fs: adjust `position` validation in reading methods (Livia Medeiros) nodejs#42835
* (SEMVER-MAJOR) fs: add globSync implementation (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) http: reduce parts in chunked response when corking (Robert Nagy) nodejs#50167
* (SEMVER-MAJOR) lib: mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) nodejs#47497
* (SEMVER-MAJOR) lib: remove aix directory case for package reader (Yagiz Nizipli) nodejs#48605
* (SEMVER-MAJOR) lib: add `navigator.hardwareConcurrency` (Yagiz Nizipli) nodejs#47769
* (SEMVER-MAJOR) lib: runtime deprecate punycode (Yagiz Nizipli) nodejs#47202
* (SEMVER-MAJOR) module: harmonize error code between ESM and CJS (Antoine du Hamel) nodejs#48606
* (SEMVER-MAJOR) net: do not treat `server.maxConnections=0` as `Infinity` (ignoramous) nodejs#48276
* (SEMVER-MAJOR) net: only defer \_final call when connecting (Jason Zhang) nodejs#47385
* (SEMVER-MAJOR) node-api: rename internal NAPI\_VERSION definition (Chengzhong Wu) nodejs#48501
* (SEMVER-MAJOR) src: update NODE\_MODULE\_VERSION to 120 (Michaël Zasso) nodejs#49639
* (SEMVER-MAJOR) src: throw DOMException on cloning non-serializable objects (Chengzhong Wu) nodejs#47839
* (SEMVER-MAJOR) src: throw DataCloneError on transfering untransferable objects (Chengzhong Wu) nodejs#47604
* (SEMVER-MAJOR) stream: use private properties for strategies (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) stream: use private properties for encoding (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) stream: use private properties for compression (Yagiz Nizipli) nodejs#47218
* (SEMVER-MAJOR) test\_runner: disallow array in `run` options (Raz Luvaton) nodejs#49935
* (SEMVER-MAJOR) test\_runner: support passing globs (Moshe Atlow) nodejs#47653
* (SEMVER-MAJOR) tls: use `validateNumber` for `options.minDHSize` (Deokjin Kim) nodejs#49973
* (SEMVER-MAJOR) tls: use validateFunction for `options.checkServerIdentity` (Deokjin Kim) nodejs#49896
* (SEMVER-MAJOR) util: runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) nodejs#49609
* (SEMVER-MAJOR) vm: freeze `dependencySpecifiers` array (Antoine du Hamel) nodejs#49720

PR-URL: nodejs#49870
Co-authored-by: Michaël Zasso <targos@protonmail.com>
@ReDemoNBR ReDemoNBR mentioned this pull request Dec 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. deprecations Issues and PRs related to deprecations. needs-ci PRs that need a full CI run. semver-major PRs that contain breaking changes and should be released in the next major version. util Issues and PRs related to the built-in util module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Promisify crashing node (or making it hang)
8 participants