Home | History | Annotate | Download | only in es6
      1 // Copyright 2015 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
      6 
      7 Debug = debug.Debug
      8 
      9 var exception = null;
     10 var log = [];
     11 
     12 function listener(event, exec_state, event_data, data) {
     13   if (event != Debug.DebugEvent.Break) return;
     14   try {
     15     print(event_data.sourceLineText());
     16     var entry = "";
     17     for (var i = 0; i < exec_state.frameCount(); i++) {
     18       entry += exec_state.frame(i).sourceLineText().substr(-1);
     19       entry += exec_state.frame(i).sourceColumn();
     20     }
     21     log.push(entry);
     22     exec_state.prepareStep(Debug.StepAction.StepIn);
     23   } catch (e) {
     24     exception = e;
     25   }
     26 };
     27 
     28 function default_arg(x) {
     29   return "default";                 // d
     30 }                                   // e
     31 
     32 function f(arg0 = default_arg()) {  // f
     33   return arg0;                      // g
     34 }                                   // h
     35 
     36 
     37 Debug.setListener(listener);
     38 debugger;                           // a
     39 var result = f();                   // b
     40 Debug.setListener(null);            // c
     41 
     42 assertNull(exception);
     43 assertEquals("default", result);
     44 
     45 assertEquals(["a0","b13","f18b13","d2f18b13","e0f18b13","g2b13","h0b13","c0"],
     46              log);
     47