1// Copyright 2016 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 --ignition-generators 6 7var Debug = debug.Debug; 8 9var break_count = 0; 10var exception = null; 11 12function listener(event, exec_state, event_data, data) { 13 if (event != Debug.DebugEvent.Break) return; 14 try { 15 break_count++; 16 var line = exec_state.frame(0).sourceLineText(); 17 print(line); 18 assertTrue(line.indexOf(`B${break_count}`) > 0); 19 } catch (e) { 20 exception = e; 21 } 22} 23 24 25function* g() { 26 setbreaks(); 27 yield 1; // B1 28} 29 30function* f() { 31 yield* g(); 32 return 2; // B2 33} 34 35function setbreaks() { 36 Debug.setListener(listener); 37 Debug.setBreakPoint(g, 2); 38 Debug.setBreakPoint(f, 2); 39} 40 41for (let _ of f()) { } 42 43assertEquals(2, break_count); 44assertNull(exception); 45 46Debug.setListener(null); 47