Object-getPromiseReactions-01.js (933B)
1 // Debugger.Object.prototype.getPromiseReactions throws on non-promises, but 2 // works on wrappers of promises. 3 4 load(libdir + 'asserts.js'); 5 load(libdir + 'array-compare.js'); 6 7 var g = newGlobal({ newCompartment: true }); 8 var dbg = new Debugger; 9 var DOg = dbg.addDebuggee(g); 10 11 assertThrowsInstanceOf(() => DOg.getPromiseReactions(), TypeError); 12 13 // Try retrieving an empty reaction list from an actual promise. 14 g.eval(`var p = Promise.resolve();`); 15 var DOgp = DOg.makeDebuggeeValue(g.p); 16 assertEq(true, arraysEqual(DOgp.getPromiseReactions(), [])); 17 18 // Try a Debugger.Object of a cross-compartment wrapper of a promise. This 19 // should still work: the promise accessors generally do checked unwraps of 20 // their arguments. 21 var g2 = newGlobal({ newCompartment: true }); 22 DOg2 = dbg.addDebuggee(g2); 23 var DOg2gp = DOg2.makeDebuggeeValue(g.p); 24 assertEq(DOgp, DOg2gp.unwrap()); 25 assertEq(true, arraysEqual(DOg2gp.getPromiseReactions(), []));