/js/src/jit-test/tests/debug/breakpoint-multi-01.js

http://github.com/zpao/v8monkey · JavaScript · 28 lines · 25 code · 2 blank · 1 comment · 2 complexity · 9886a43e747b42975f18b02836933e57 MD5 · raw file

  1. // A single Debugger object can set multiple breakpoints at an instruction.
  2. var g = newGlobal('new-compartment');
  3. var dbg = Debugger(g);
  4. var log = '';
  5. dbg.onDebuggerStatement = function (frame) {
  6. log += 'D';
  7. function handler(i) {
  8. return {hit: function (frame) { log += '' + i; }};
  9. }
  10. var f = frame.eval("f").return;
  11. var s = f.script;
  12. var offs = s.getLineOffsets(g.line0 + 2);
  13. for (var i = 0; i < 10; i++) {
  14. var bp = handler(i);
  15. for (var j = 0; j < offs.length; j++)
  16. s.setBreakpoint(offs[j], bp);
  17. }
  18. assertEq(f.call().return, 42);
  19. log += 'X';
  20. };
  21. g.eval("var line0 = Error().lineNumber;\n" +
  22. "function f() {\n" + // line0 + 1
  23. " return 42;\n" + // line0 + 2
  24. "}\n" +
  25. "debugger;\n");
  26. assertEq(log, 'D0123456789X');