• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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