1 // Copyright 2016 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: --allow-natives-syntax --expose-debug-as debug 6 7 // Test that PC in optimized frame would correctly translate into 8 // unoptimized frame when retrieving frame information in the debugger. 9 10 function f() { 11 debugger; 12 } 13 14 function g(x) { 15 return f(); 16 } 17 18 var break_count = 0; 19 20 function listener(event, exec_state, event_data, data) { 21 if (event != Debug.DebugEvent.Break) return; 22 assertEquals(14, exec_state.frame(1).sourceLine()); 23 assertEquals(9, exec_state.frame(1).sourceColumn()); 24 break_count++; 25 } 26 27 g(); 28 g(); 29 %OptimizeFunctionOnNextCall(g); 30 31 var Debug = debug.Debug; 32 Debug.setListener(listener); 33 34 g(); 35 36 Debug.setListener(null); 37 38 assertEquals(1, break_count); 39