blob: 6914ae00363831dd10826fde6cf2e9b17a30b833 [file] [log] [blame]
Ben Murdoch4a90d5f2016-03-22 12:00:34 +00001// Copyright 2015 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
6
7var Debug = debug.Debug;
8var exception = null;
9var breaks = [];
10
11function listener(event, exec_state, event_data, data) {
12 if (event != Debug.DebugEvent.Break) return;
13 try {
14 breaks.push(exec_state.frame(0).sourceLineText().trimLeft());
15 exec_state.prepareStep(Debug.StepAction.StepIn);
16 } catch (e) {
17 exception = e;
18 }
19}
20
21Debug.setListener(listener);
22
23function resolver(resolve, reject) {
Ben Murdochc5610432016-08-08 18:44:38 +010024 print(1);
25 print(2);
26 print(3);
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000027 resolve();
28}
29
30debugger;
31var p = new Promise(resolver);
32
33Debug.setListener(null);
34
35var expected_breaks = [
36 "debugger;",
37 "var p = new Promise(resolver);",
Ben Murdochc5610432016-08-08 18:44:38 +010038 "print(1);",
39 "print(2);",
40 "print(3);",
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000041 "resolve();",
42 "}",
43 "Debug.setListener(null);"
44];
45
46assertEquals(expected_breaks, breaks);
47assertNull(exception);