1 // Copyright 2014 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 --debug-eval-readonly-locals 6 7 Debug = debug.Debug 8 var exception = null; 9 var break_count = 0; 10 11 var f = null; 12 var i = null; 13 function listener(event, exec_state, event_data, data) { 14 try { 15 if (event == Debug.DebugEvent.Break) { 16 var frameMirror = exec_state.frame(0); 17 18 var i = frameMirror.evaluate('f = function() { i = 5; }, f(), i').value(); 19 assertEquals(5, i); 20 } 21 } catch(e) { 22 exception = e; 23 print(e, e.stack); 24 } 25 }; 26 27 Debug.setListener(listener); 28 29 (function (){ 30 31 var i = 0; 32 33 try { 34 throw new Error(); 35 } catch (e) { 36 assertEquals(0, i); 37 debugger; 38 assertEquals(0, i); 39 } 40 }()); 41 42 assertNull(exception); 43 44 assertNull(i); 45 f(); 46 assertNull(i); 47 48 Debug.setListener(null); 49