Home | History | Annotate | Download | only in mjsunit
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Flags: --expose-debug-as debug
      6 
      7 Debug = debug.Debug
      8 var exception = null;
      9 
     10 function breakListener(event, exec_state, event_data, data) {
     11   if (event != Debug.DebugEvent.Break) return;
     12   try {
     13     exec_state.prepareStep(Debug.StepAction.StepIn, 1);
     14     // Assert that the break happens at an intended location.
     15     assertTrue(exec_state.frame(0).sourceLineText().indexOf("// break") > 0);
     16   } catch (e) {
     17     exception = e;
     18   }
     19 }
     20 
     21 Debug.setListener(breakListener);
     22 
     23 debugger;                          // break
     24 
     25 function f(x) {
     26   return x;                        // break
     27 }                                  // break
     28 
     29 Debug.setBreakPoint(f, 0, 0);      // break
     30 Debug.scripts();                   // break
     31 debug.MakeMirror(f);               // break
     32 
     33 new Error("123").stack;            // break
     34 Math.sin(0);                       // break
     35 
     36 f("this should break");            // break
     37 
     38 Debug.setListener(null);           // break
     39 
     40 f("this should not break");
     41 
     42 assertNull(exception);
     43