blob: 4ab601bbf32ff5c4f2f8816c5c0254b2e8bd2ddb [file] [log] [blame]
Ben Murdoch61f157c2016-09-16 13:49:30 +01001// 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);