Home | History | Annotate | Download | only in mjsunit
      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