Home | History | Annotate | Download | only in es6
      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 var yields = 0;
     10 
     11 function listener(event, exec_state, event_data, data) {
     12   if (event != Debug.DebugEvent.Break) return;
     13   try {
     14     var source = exec_state.frame(0).sourceLineText();
     15     print(source);
     16     if (/stop stepping/.test(source)) return;
     17     if (/yield/.test(source)) yields++;
     18     exec_state.prepareStep(Debug.StepAction.StepIn);
     19   } catch (e) {
     20     print(e, e.stack);
     21     exception = e;
     22   }
     23 };
     24 
     25 Debug.setListener(listener);
     26 
     27 function* g() {
     28   for (var i = 0; i < 3; ++i) {
     29     yield i;
     30   }
     31 }
     32 
     33 var i = g();
     34 debugger;
     35 for (var num of g()) {}
     36 i.next();
     37 
     38 print(); // stop stepping
     39 
     40 // Not stepped into.
     41 i.next();
     42 i.next();
     43 
     44 assertNull(exception);
     45 assertEquals(4, yields);
     46