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