From 40e9f82ac30ee2c1f9ffe8e4b63fc3bbd52f9001 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Sun, 10 Jul 2022 15:31:20 +0200 Subject: [PATCH] repl: use `SafePromiseAll` and `SafePromiseRace` --- lib/internal/debugger/inspect_repl.js | 40 ++++++++++++--------------- lib/repl.js | 4 +-- 2 files changed, 19 insertions(+), 25 deletions(-) diff --git a/lib/internal/debugger/inspect_repl.js b/lib/internal/debugger/inspect_repl.js index 0ac0c8464e0a4f..bfc11990e0ddf0 100644 --- a/lib/internal/debugger/inspect_repl.js +++ b/lib/internal/debugger/inspect_repl.js @@ -23,7 +23,6 @@ const { ObjectKeys, ObjectValues, Promise, - PromiseAll, PromisePrototypeCatch, PromisePrototypeThen, PromiseResolve, @@ -31,8 +30,8 @@ const { ReflectOwnKeys, RegExpPrototypeExec, RegExpPrototypeSymbolReplace, - SafeArrayIterator, SafeMap, + SafePromiseAll, String, StringFromCharCode, StringPrototypeEndsWith, @@ -519,22 +518,19 @@ function createRepl(inspector) { } loadScopes() { - return PromiseAll( - new SafeArrayIterator(ArrayPrototypeMap( - ArrayPrototypeFilter( - this.scopeChain, - (scope) => scope.type !== 'global' - ), - async (scope) => { - const { objectId } = scope.object; - const { result } = await Runtime.getProperties({ - objectId, - generatePreview: true, - }); - return new ScopeSnapshot(scope, result); - }) - ) - ); + return SafePromiseAll( + ArrayPrototypeFilter( + this.scopeChain, + (scope) => scope.type !== 'global' + ), + async (scope) => { + const { objectId } = scope.object; + const { result } = await Runtime.getProperties({ + objectId, + generatePreview: true, + }); + return new ScopeSnapshot(scope, result); + }); } list(delta = 5) { @@ -661,8 +657,7 @@ function createRepl(inspector) { (error) => `<${error.message}>`); const lastIndex = watchedExpressions.length - 1; - const values = await PromiseAll(new SafeArrayIterator( - ArrayPrototypeMap(watchedExpressions, inspectValue))); + const values = await SafePromiseAll(watchedExpressions, inspectValue); const lines = ArrayPrototypeMap(watchedExpressions, (expr, idx) => { const prefix = `${leftPad(idx, ' ', lastIndex)}: ${expr} =`; const value = inspect(values[idx]); @@ -866,7 +861,7 @@ function createRepl(inspector) { location.lineNumber + 1)); if (!newBreakpoints.length) return PromiseResolve(); return PromisePrototypeThen( - PromiseAll(new SafeArrayIterator(newBreakpoints)), + SafePromiseAll(newBreakpoints), (results) => { print(`${results.length} breakpoints restored.`); }); @@ -902,8 +897,7 @@ function createRepl(inspector) { inspector.suspendReplWhile(() => PromisePrototypeThen( - PromiseAll(new SafeArrayIterator( - [formatWatchers(true), selectedFrame.list(2)])), + SafePromiseAll([formatWatchers(true), selectedFrame.list(2)]), ({ 0: watcherList, 1: context }) => { const breakContext = watcherList ? `${watcherList}\n${inspect(context)}` : diff --git a/lib/repl.js b/lib/repl.js index b81eaef0d06989..a02d4cfc3fb795 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -74,12 +74,12 @@ const { ObjectKeys, ObjectSetPrototypeOf, Promise, - PromiseRace, ReflectApply, RegExp, RegExpPrototypeExec, RegExpPrototypeSymbolReplace, RegExpPrototypeSymbolSplit, + SafePromiseRace, SafeSet, SafeWeakSet, StringPrototypeCharAt, @@ -611,7 +611,7 @@ function REPLServer(prompt, }; prioritizedSigintQueue.add(sigintListener); }); - promise = PromiseRace([promise, interrupt]); + promise = SafePromiseRace([promise, interrupt]); } (async () => {