Skip to content

Commit 4e5c90b

Browse files
anonrigaduh95
authored andcommitted
lib: replace createDeferredPromise util with Promise.withResolvers
PR-URL: #54836 Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Chemi Atlow <chemi@atlow.co.il> Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
1 parent 89c96ad commit 4e5c90b

19 files changed

Lines changed: 68 additions & 88 deletions

‎lib/child_process.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const {
3737
ObjectAssign,
3838
ObjectDefineProperty,
3939
ObjectPrototypeHasOwnProperty,
40+
PromiseWithResolvers,
4041
RegExpPrototypeExec,
4142
SafeSet,
4243
StringPrototypeIncludes,
@@ -47,7 +48,6 @@ const {
4748

4849
const{
4950
convertToValidSignal,
50-
createDeferredPromise,
5151
getSystemErrorName,
5252
kEmptyObject,
5353
promisify,
@@ -237,7 +237,7 @@ function exec(command, options, callback) {
237237

238238
constcustomPromiseExecFunction=(orig)=>{
239239
return(...args)=>{
240-
const{ promise, resolve, reject }=createDeferredPromise();
240+
const{ promise, resolve, reject }=PromiseWithResolvers();
241241

242242
promise.child=orig(...args,(err,stdout,stderr)=>{
243243
if(err!==null){

‎lib/internal/abort_controller.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ const {
1010
ObjectDefineProperty,
1111
ObjectSetPrototypeOf,
1212
PromiseResolve,
13+
PromiseWithResolvers,
1314
SafeFinalizationRegistry,
1415
SafeSet,
1516
SafeWeakRef,
@@ -28,7 +29,6 @@ const {
2829
kWeakHandler,
2930
}=require('internal/event_target');
3031
const{
31-
createDeferredPromise,
3232
customInspectSymbol,
3333
kEmptyObject,
3434
kEnumerableProperty,
@@ -486,7 +486,7 @@ async function aborted(signal, resource) {
486486
validateObject(resource,'resource',kValidateObjectAllowObjects);
487487
if(signal.aborted)
488488
returnPromiseResolve();
489-
constabortPromise=createDeferredPromise();
489+
constabortPromise=PromiseWithResolvers();
490490
constopts={__proto__: null,[kWeakHandler]: resource,once: true,[kResistStopPropagation]: true};
491491
signal.addEventListener('abort',abortPromise.resolve,opts);
492492
returnabortPromise.promise;

‎lib/internal/blob.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const {
99
ObjectSetPrototypeOf,
1010
PromisePrototypeThen,
1111
PromiseReject,
12+
PromiseWithResolvers,
1213
RegExpPrototypeExec,
1314
RegExpPrototypeSymbolReplace,
1415
StringPrototypeSplit,
@@ -47,7 +48,6 @@ const {
4748
}=require('internal/util/types');
4849

4950
const{
50-
createDeferredPromise,
5151
customInspectSymbol: kInspect,
5252
kEmptyObject,
5353
kEnumerableProperty,
@@ -325,7 +325,7 @@ class Blob {
325325
this.pendingPulls=[];
326326
},
327327
pull(c){
328-
const{ promise, resolve, reject }=createDeferredPromise();
328+
const{ promise, resolve, reject }=PromiseWithResolvers();
329329
this.pendingPulls.push({ resolve, reject });
330330
constreadNext=()=>{
331331
reader.pull((status,buffer)=>{
@@ -478,7 +478,7 @@ function createBlobFromFilePath(path, options) {
478478
}
479479

480480
functionarrayBuffer(blob){
481-
const{ promise, resolve, reject }=createDeferredPromise();
481+
const{ promise, resolve, reject }=PromiseWithResolvers();
482482
constreader=blob[kHandle].getReader();
483483
constbuffers=[];
484484
constreadNext=()=>{

‎lib/internal/fs/watchers.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const {
44
FunctionPrototypeCall,
55
ObjectDefineProperty,
66
ObjectSetPrototypeOf,
7+
PromiseWithResolvers,
78
Symbol,
89
}=primordials;
910

@@ -15,7 +16,6 @@ const {
1516
},
1617
}=require('internal/errors');
1718
const{
18-
createDeferredPromise,
1919
kEmptyObject,
2020
}=require('internal/util');
2121

@@ -325,7 +325,7 @@ async function* watch(filename, options = kEmptyObject) {
325325
thrownewAbortError(undefined,{cause: signal?.reason});
326326

327327
consthandle=newFSEvent();
328-
let{ promise, resolve, reject }=createDeferredPromise();
328+
let{ promise, resolve, reject }=PromiseWithResolvers();
329329
constoncancel=()=>{
330330
handle.close();
331331
reject(newAbortError(undefined,{cause: signal?.reason}));
@@ -368,7 +368,7 @@ async function* watch(filename, options = kEmptyObject) {
368368

369369
while(!signal?.aborted){
370370
yieldawaitpromise;
371-
({ promise, resolve, reject }=createDeferredPromise());
371+
({ promise, resolve, reject }=PromiseWithResolvers());
372372
}
373373
thrownewAbortError(undefined,{cause: signal?.reason});
374374
}finally{

‎lib/internal/streams/duplexify.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
const{
44
FunctionPrototypeCall,
5+
PromiseWithResolvers,
56
}=primordials;
67

78
const{
@@ -27,7 +28,6 @@ const { destroyer } = require('internal/streams/destroy');
2728
constDuplex=require('internal/streams/duplex');
2829
constReadable=require('internal/streams/readable');
2930
constWritable=require('internal/streams/writable');
30-
const{ createDeferredPromise }=require('internal/util');
3131
constfrom=require('internal/streams/from');
3232

3333
const{
@@ -209,7 +209,7 @@ module.exports = function duplexify(body, name) {
209209
};
210210

211211
functionfromAsyncGen(fn){
212-
let{ promise, resolve }=createDeferredPromise();
212+
let{ promise, resolve }=PromiseWithResolvers();
213213
constac=newAbortController();
214214
constsignal=ac.signal;
215215
constvalue=fn(asyncfunction*(){
@@ -221,7 +221,7 @@ function fromAsyncGen(fn) {
221221
if(done)return;
222222
if(signal.aborted)
223223
thrownewAbortError(undefined,{cause: signal.reason});
224-
({ promise, resolve }=createDeferredPromise());
224+
({ promise, resolve }=PromiseWithResolvers());
225225
yieldchunk;
226226
}
227227
}(),{ signal });

‎lib/internal/test_runner/harness.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const {
44
ArrayPrototypePush,
55
FunctionPrototypeBind,
66
PromiseResolve,
7+
PromiseWithResolvers,
78
SafeMap,
89
SafePromiseAllReturnVoid,
910
}=primordials;
@@ -26,7 +27,6 @@ const {
2627
shouldColorizeTestFiles,
2728
}=require('internal/test_runner/utils');
2829
const{ queueMicrotask }=require('internal/process/task_queues');
29-
const{ createDeferredPromise }=require('internal/util');
3030
const{bigint: hrtime}=process.hrtime;
3131
constresolvedPromise=PromiseResolve();
3232
consttestResources=newSafeMap();
@@ -35,7 +35,7 @@ let globalRoot;
3535
testResources.set(reporterScope.asyncId(),reporterScope);
3636

3737
functioncreateTestTree(rootTestOptions,globalOptions){
38-
constbuildPhaseDeferred=createDeferredPromise();
38+
constbuildPhaseDeferred=PromiseWithResolvers();
3939
constisFilteringByName=globalOptions.testNamePatterns||
4040
globalOptions.testSkipPatterns;
4141
constisFilteringByOnly=(globalOptions.isolation==='process'||process.env.NODE_TEST_CONTEXT) ?

‎lib/internal/test_runner/runner.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const {
1818
ObjectAssign,
1919
PromisePrototypeThen,
2020
PromiseResolve,
21+
PromiseWithResolvers,
2122
SafeMap,
2223
SafePromiseAll,
2324
SafePromiseAllReturnVoid,
@@ -63,7 +64,6 @@ const { getInspectPort, isUsingInspector, isInspectorMessage } = require('intern
6364
const{ isRegExp }=require('internal/util/types');
6465
const{ pathToFileURL }=require('internal/url');
6566
const{
66-
createDeferredPromise,
6767
kEmptyObject,
6868
}=require('internal/util');
6969
const{ kEmitMessage }=require('internal/test_runner/tests_stream');
@@ -744,7 +744,7 @@ function run(options = kEmptyObject) {
744744
};
745745
}else{
746746
runFiles=async()=>{
747-
const{ promise,resolve: finishBootstrap}=createDeferredPromise();
747+
const{ promise,resolve: finishBootstrap}=PromiseWithResolvers();
748748

749749
awaitroot.runInAsyncScope(async()=>{
750750
constparentURL=pathToFileURL(cwd+sep).href;

‎lib/internal/test_runner/test.js‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const {
1818
Promise,
1919
PromisePrototypeThen,
2020
PromiseResolve,
21+
PromiseWithResolvers,
2122
ReflectApply,
2223
RegExpPrototypeExec,
2324
SafeMap,
@@ -53,7 +54,6 @@ const {
5354
reporterScope,
5455
}=require('internal/test_runner/utils');
5556
const{
56-
createDeferredPromise,
5757
kEmptyObject,
5858
once: runOnce,
5959
}=require('internal/util');
@@ -137,7 +137,7 @@ function lazyAssertObject(harness) {
137137
}
138138

139139
functionstopTest(timeout,signal){
140-
constdeferred=createDeferredPromise();
140+
constdeferred=PromiseWithResolvers();
141141
constabortListener=addAbortListener(signal,deferred.resolve);
142142
lettimer;
143143
letdisposeFunction;
@@ -822,7 +822,7 @@ class Test extends AsyncResource {
822822
// pending for later execution.
823823
this.reporter.enqueue(this.nesting,this.loc,this.name);
824824
if(this.root.harness.buildPromise||!this.parent.hasConcurrency()){
825-
constdeferred=createDeferredPromise();
825+
constdeferred=PromiseWithResolvers();
826826

827827
deferred.test=this;
828828
this.parent.addPendingSubtest(deferred);

‎lib/internal/test_runner/utils.js‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const {
1414
NumberParseInt,
1515
NumberPrototypeToFixed,
1616
ObjectGetOwnPropertyDescriptor,
17+
PromiseWithResolvers,
1718
RegExp,
1819
RegExpPrototypeExec,
1920
SafeMap,
@@ -29,7 +30,6 @@ const { AsyncResource } = require('async_hooks');
2930
const{ relative, sep }=require('path');
3031
const{ createWriteStream }=require('fs');
3132
const{ pathToFileURL }=require('internal/url');
32-
const{ createDeferredPromise }=require('internal/util');
3333
const{ getOptionValue }=require('internal/options');
3434
const{ green, yellow, red, white, shouldColorize }=require('internal/util/colors');
3535

@@ -62,7 +62,7 @@ const kDefaultPattern = `**/{${ArrayPrototypeJoin(kPatterns, ',')}}.{${ArrayProt
6262

6363
functioncreateDeferredCallback(){
6464
letcalledCount=0;
65-
const{ promise, resolve, reject }=createDeferredPromise();
65+
const{ promise, resolve, reject }=PromiseWithResolvers();
6666
constcb=(err)=>{
6767
calledCount++;
6868

‎lib/internal/util.js‎

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -543,17 +543,6 @@ function sleep(msec) {
543543
_sleep(msec);
544544
}
545545

546-
functioncreateDeferredPromise(){
547-
letresolve;
548-
letreject;
549-
constpromise=newPromise((res,rej)=>{
550-
resolve=res;
551-
reject=rej;
552-
});
553-
554-
return{ promise, resolve, reject };
555-
}
556-
557546
// https://heycam.github.io/webidl/#define-the-operations
558547
functiondefineOperation(target,name,method){
559548
ObjectDefineProperty(target,name,{
@@ -872,7 +861,6 @@ module.exports = {
872861
cachedResult,
873862
convertToValidSignal,
874863
createClassWrapper,
875-
createDeferredPromise,
876864
decorateErrorStack,
877865
defineOperation,
878866
defineLazyProperties,

0 commit comments

Comments
 (0)