// Copyright 2015 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Flags: --expose-debug-as debug function static() { print("> static"); // Break } var Debug = debug.Debug; var exception = null; var break_count = 0; function listener(event, exec_state, event_data, data) { if (event != Debug.DebugEvent.Break) return; try { print("breakpoint hit at " + exec_state.frame(0).sourceLineText()); assertTrue(exec_state.frame(0).sourceLineText().indexOf("// Break") > 0); break_count++; } catch (e) { exception = e; } } Debug.setListener(listener); function install() { eval("this.dynamic = function dynamic() { \n" + " print(\"> dynamic\"); // Break\n" + "}\n" + "//@ sourceURL=dynamicScript"); } install(); var scripts = Debug.scripts(); var dynamic_script; var static_script; for (var script of scripts) { if (script.source_url == "dynamicScript") dynamic_script = script; if (script.source_url == "staticScript") static_script = script; } Debug.setScriptBreakPointById(dynamic_script.id, 1); Debug.setScriptBreakPointById(static_script.id, 7); dynamic(); static(); Debug.setListener(null); assertNull(exception); assertEquals(2, break_count); //@ sourceURL=staticScript