noExecute-05.js (962B)
1 // Tests that NX disallows debuggee execution for all debuggees. 2 3 load(libdir + "asserts.js"); 4 load(libdir + "debuggerNXHelper.js"); 5 6 var g1 = newGlobal({newCompartment: true}); 7 var g2 = newGlobal({newCompartment: true}); 8 var dbg = new Debugger; 9 10 dbg.addDebuggee(g1); 11 dbg.addDebuggee(g2); 12 13 g1.eval(` 14 function f() { } 15 var o = { 16 get p() { }, 17 set p(x) { } 18 }; 19 `); 20 21 g2.eval(` 22 function f() { } 23 var o = { 24 get p() { }, 25 set p(x) { } 26 }; 27 `); 28 29 var handlers = [() => { g1.f(); }, 30 () => { g1.o.p } , 31 () => { g1.o.p = 42; }, 32 () => { g2.f(); }, 33 () => { g2.o.p } , 34 () => { g2.o.p = 42; } ]; 35 36 function testHook(hookName) { 37 for (var h of handlers) { 38 assertThrowsInstanceOf(h, Debugger.DebuggeeWouldRun); 39 } 40 } 41 42 testDebuggerHooksNX(dbg, g1, testHook); 43 testDebuggerHooksNX(dbg, g2, testHook);