Script-getOffsetMetadata.js (852B)
1 var global = newGlobal({newCompartment: true}); 2 var dbg = Debugger(global); 3 dbg.onDebuggerStatement = function(frame) { 4 const bps = frame.script.getPossibleBreakpoints(); 5 6 const stepBps = []; 7 frame.onStep = function() { 8 assertOffset(this); 9 }; 10 11 assertOffset(frame); 12 13 function assertOffset(frame) { 14 const meta = frame.script.getOffsetMetadata(frame.offset); 15 16 if (meta.isBreakpoint) { 17 assertEq(frame.offset, bps[0].offset); 18 const expectedData = bps.shift(); 19 20 assertEq(meta.lineNumber, expectedData.lineNumber); 21 assertEq(meta.columnNumber, expectedData.columnNumber); 22 assertEq(meta.isStepStart, expectedData.isStepStart); 23 } else { 24 assertEq(meta.isStepStart, false); 25 } 26 }; 27 }; 28 29 global.eval(` 30 function a() { return "str"; } 31 debugger; 32 33 console.log("42" + a()); 34 a(); 35 a() + a(); 36 `);