| // Copyright 2018 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. |
| |
| Debug = debug.Debug |
| |
| function foo(){} |
| |
| let breakpoint_count = 0; |
| let last_source_line = 0; |
| let last_source_column = 0; |
| function listener(event, exec_state, event_data, data) { |
| if (event == Debug.DebugEvent.Break) { |
| ++breakpoint_count; |
| last_source_line = exec_state.frame(0).sourceLine(); |
| last_source_column = exec_state.frame(0).sourceColumn(); |
| } |
| }; |
| |
| Debug.setListener(listener); |
| |
| // Run without breakpoints. |
| foo(); |
| assertEquals(breakpoint_count, 0); |
| |
| // Run with breakpoint. |
| const breakpoint = Debug.setBreakPoint(foo, 0); |
| foo(); |
| assertEquals(breakpoint_count, 1); |
| assertEquals(last_source_line, 7); |
| assertEquals(last_source_column, 15); |
| foo(); |
| assertEquals(breakpoint_count, 2); |
| assertEquals(last_source_line, 7); |
| assertEquals(last_source_column, 15); |
| |
| // Run without breakpoints |
| Debug.clearBreakPoint(breakpoint); |
| foo(); |
| assertEquals(breakpoint_count, 2); |