• 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
6
7function static() {
8  print("> static");  // Break
9}
10
11var Debug = debug.Debug;
12var exception = null;
13var break_count = 0;
14
15function listener(event, exec_state, event_data, data) {
16  if (event != Debug.DebugEvent.Break) return;
17  try {
18    print("breakpoint hit at " + exec_state.frame(0).sourceLineText());
19    assertTrue(exec_state.frame(0).sourceLineText().indexOf("// Break") > 0);
20    break_count++;
21  } catch (e) {
22    exception = e;
23  }
24}
25
26Debug.setListener(listener);
27
28function install() {
29  eval("this.dynamic = function dynamic() { \n" +
30       "  print(\"> dynamic\");  // Break\n" +
31       "}\n" +
32       "//@ sourceURL=dynamicScript");
33}
34
35install();
36
37var scripts = Debug.scripts();
38var dynamic_script;
39var static_script;
40for (var script of scripts) {
41  if (script.source_url == "dynamicScript") dynamic_script = script;
42  if (script.source_url == "staticScript") static_script = script;
43}
44
45Debug.setScriptBreakPointById(dynamic_script.id, 1);
46Debug.setScriptBreakPointById(static_script.id, 7);
47
48dynamic();
49static();
50
51Debug.setListener(null);
52
53assertNull(exception);
54assertEquals(2, break_count);
55
56//@ sourceURL=staticScript
57