bug911065.js (1021B)
1 var g = newGlobal({newCompartment: true}); 2 var dbg = new Debugger; 3 var gw = dbg.addDebuggee(g); 4 5 g.eval(` // 1 6 var line0 = Error().lineNumber; // 2 7 function f() { // 3 8 for (var x of [0]) { // 4 9 if (true == false) // 5 10 return false; // 6, aka line0 + 4 11 } // 7 12 return true; // 8 13 } // 9 14 `); // 10 15 16 if (g.dis) 17 g.dis(g.f); 18 19 var script = gw.getOwnPropertyDescriptor("f").value.script; 20 21 print("Debugger's view:"); 22 print("----------------"); 23 for (var i = script.startLine; i <= script.startLine + script.lineCount; i++) { 24 print("Line " + i + ": " + JSON.stringify(script.getLineOffsets(i))); 25 } 26 27 var hits = 0; 28 var handler = {hit: function () { hits++; }}; 29 var offs = script.getLineOffsets(g.line0 + 4); 30 for (var i = 0; i < offs.length; i++) 31 script.setBreakpoint(offs[i], handler); 32 33 assertEq(g.f(), true); 34 assertEq(hits, 0);