Debugger-onNewPromise-06.js (1152B)
1 // Resumption values from onNewPromise handlers are disallowed. 2 3 load(libdir + 'asserts.js'); 4 5 var g = newGlobal({newCompartment: true}); 6 var dbg = new Debugger(g); 7 var log; 8 9 dbg.onNewPromise = function (g) { log += 'n'; return undefined; }; 10 log = ''; 11 assertEq(typeof new g.Promise(function (){}), "object"); 12 assertEq(log, 'n'); 13 14 dbg.uncaughtExceptionHook = function (ex) { assertEq(/disallowed/.test(ex), true); log += 'u'; } 15 dbg.onNewPromise = function (g) { log += 'n'; return { return: "snoo" }; }; 16 log = ''; 17 assertEq(typeof new g.Promise(function (){}), "object"); 18 assertEq(log, 'nu'); 19 20 dbg.onNewPromise = function (g) { log += 'n'; return { throw: "snoo" }; }; 21 log = ''; 22 assertEq(typeof new g.Promise(function (){}), "object"); 23 assertEq(log, 'nu'); 24 25 dbg.onNewPromise = function (g) { log += 'n'; return null; }; 26 log = ''; 27 assertEq(typeof new g.Promise(function (){}), "object"); 28 assertEq(log, 'nu'); 29 30 dbg.uncaughtExceptionHook = function (ex) { assertEq(/foopy/.test(ex), true); log += 'u'; } 31 dbg.onNewPromise = function (g) { log += 'n'; throw "foopy"; }; 32 log = ''; 33 assertEq(typeof new g.Promise(function (){}), "object"); 34 assertEq(log, 'nu');