blob: 6e548b480a76c4b5a177a7af811295c4db8f7907 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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
Ben Murdoch61f157c2016-09-16 13:49:30 +01005// Flags: --expose-debug-as debug --ignition-generators
Ben Murdochb8a8cc12014-11-26 15:28:44 +00006
7Debug = debug.Debug
8var exception = null;
9var yields = 0;
10
11function 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++;
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000018 exec_state.prepareStep(Debug.StepAction.StepIn);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000019 } catch (e) {
20 print(e, e.stack);
21 exception = e;
22 }
23};
24
25Debug.setListener(listener);
26
27function* g() {
28 for (var i = 0; i < 3; ++i) {
29 yield i;
30 }
31}
32
33var i = g();
34debugger;
35for (var num of g()) {}
36i.next();
37
38print(); // stop stepping
39
40// Not stepped into.
41i.next();
42i.next();
43
44assertNull(exception);
45assertEquals(4, yields);