Debugger-onPromiseSettled-05.js (551B)
1 // Settling a promise within an onPromiseSettled handler causes a recursive 2 // handler invocation. 3 4 var g = newGlobal({newCompartment: true}); 5 var dbg = new Debugger(); 6 var gw = dbg.addDebuggee(g); 7 var log; 8 var depth; 9 10 dbg.onPromiseSettled = function (promise) { 11 log += '('; depth++; 12 13 assertEq(promise.seen, undefined); 14 promise.seen = true; 15 16 if (depth < 3) { 17 gw.executeInGlobal(`settlePromiseNow(new Promise(_=>{}));`); 18 } 19 log += ')'; depth--; 20 }; 21 22 log = ''; 23 depth = 0; 24 g.settlePromiseNow(new g.Promise(_=>{})); 25 assertEq(log, '((()))');