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 --harmony-default-parameters 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","b0","f18b13","d2f18b13","e0f18b13","g2b13","h0b13","c0"], 46 log); 47