noExecute-03.js (611B)
1 // Tests that invocation functions work outside of Debugger code. 2 3 load(libdir + "asserts.js"); 4 5 var g = newGlobal({newCompartment: true}); 6 var dbg = new Debugger(); 7 var gw = dbg.addDebuggee(g); 8 9 g.eval(` 10 function f() { debugger; return 42; } 11 function f2() { return 42; } 12 var o = { 13 get p() { return 42; }, 14 set p(x) { } 15 }; 16 `); 17 18 var strs = ["f(f2);", "o.p", "o.p = 42"]; 19 20 var f2w; 21 dbg.onDebuggerStatement = (frame) => { 22 f2w = frame.arguments[0]; 23 }; 24 25 for (var s of strs) { 26 assertEq(gw.executeInGlobal(s).return, 42); 27 } 28 assertEq(f2w.apply(null).return, 42);