blob: 31f7e6e86924840229cf6e61e18195044c19d7d4 [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 --allow-natives-syntax
6
7var Debug = debug.Debug;
8var expected = ["debugger;",
9 "var x = y;",
10 "new Promise(f).catch(call_f_with_deeper_stack);",
Ben Murdochda12d292016-06-02 14:46:10 +010011 "var a = 1;", "var a = 1;",
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000012 "debugger;",
13 "var x = y;"];
14
15function listener(event, exec_state, event_data, data) {
16 if (event != Debug.DebugEvent.Break) return;
17 try {
18 assertEquals(expected.shift(), exec_state.frame(0).sourceLineText().trimLeft());
19 exec_state.prepareStep(Debug.StepAction.StepNext);
20 } catch (e) {
21 %AbortJS(e + "\n" + e.stack);
22 }
23}
24
25Debug.setListener(listener);
26
27function f() {
28 var a = 1;
29 debugger;
30 var x = y;
31 print(x);
32}
33
34function call_f_with_deeper_stack() {
35 (() => () => () => f())()()();
36}
37
38new Promise(f).catch(call_f_with_deeper_stack);
39var a = 1;