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 assertTrue(line.indexOf(`B${break_count}`) > 0); 18 } catch (e) { 19 exception = e; 20 } 21} 22 23Debug.setListener(listener); 24 25function* g() { 26 yield 1; 27} 28 29function* f() { 30 yield* g(); // B1 31 assertEquals(2, break_count); // B2 32 return 1; // B3 33} 34 35Debug.setBreakPoint(f, 1); 36Debug.setBreakPoint(f, 2); 37Debug.setBreakPoint(f, 3); 38 39for (let _ of f()) { } 40 41assertEquals(3, break_count); 42assertNull(exception); 43 44Debug.setListener(null); 45