Source code

Revision control

Copy as Markdown

Other Tools

// onPromiseSettled handlers on different Debugger instances are independent.
var g = newGlobal({newCompartment: true});
var dbg1 = new Debugger(g);
var log1;
function h1(promise) {
log1 += 's';
assertEq(promise.seen, undefined);
promise.seen = true;
}
var dbg2 = new Debugger(g);
var log2;
function h2(promise) {
log2 += 's';
assertEq(promise.seen, undefined);
promise.seen = true;
}
log1 = log2 = '';
g.settlePromiseNow(new g.Promise(function (){}));
assertEq(log1, '');
assertEq(log2, '');
log1 = log2 = '';
dbg1.onPromiseSettled = h1;
g.settlePromiseNow(new g.Promise(function (){}));
assertEq(log1, 's');
assertEq(log2, '');
log1 = log2 = '';
dbg2.onPromiseSettled = h2;
g.settlePromiseNow(new g.Promise(function (){}));
assertEq(log1, 's');
assertEq(log2, 's');
log1 = log2 = '';
dbg1.onPromiseSettled = undefined;
g.settlePromiseNow(new g.Promise(function (){}));
assertEq(log1, '');
assertEq(log2, 's');