• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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);",
11                "var a = 1;", "", "var a = 1;",
12                "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;
40