Home | History | Annotate | Download | only in regress
      1 // Copyright 2015 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 function f() {
      8   for (var i = 10; i < 14; i++) {  // 1
      9     i;                             // 2
     10   }
     11 }                                  // 3
     12 
     13 var state = "conditional";
     14 var log = [];
     15 var exception = null;
     16 
     17 function listener(event, exec_state, event_data, data) {
     18   if (event != Debug.DebugEvent.Break) return;
     19   try {
     20     var label = +exec_state.frame(0).sourceLineText().substr(-1);
     21     log.push(label);
     22     if (label == 2) log.push(exec_state.frame(0).evaluate("i").value());
     23     exec_state.prepareStep(Debug.StepAction.StepNext);
     24   } catch (e) {
     25     exception = e;
     26     print("Caught something. " + e + " " + e.stack);
     27   };
     28 };
     29 
     30 
     31 var Debug = debug.Debug;
     32 Debug.setListener(listener);
     33 
     34 Debug.setBreakPoint(f, 2, 0, "i == 12");
     35 
     36 f();
     37 
     38 Debug.setListener(null);  // 4
     39 
     40 assertEquals([2,12,1,1,2,13,1,1,3,4], log);
     41 assertNull(exception);
     42