| OLD | NEW |
| (Empty) |
| 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: --expose-debug-as debug | |
| 6 | |
| 7 // Test we break at every assignment in a var-statement with multiple | |
| 8 // variable declarations. | |
| 9 | |
| 10 var exception = null; | |
| 11 var log = [] | |
| 12 | |
| 13 function f() { | |
| 14 var l1 = 1, // l | |
| 15 l2, // m | |
| 16 l3 = 3; // n | |
| 17 let l4, // o | |
| 18 l5 = 5, // p | |
| 19 l6 = 6; // q | |
| 20 const l7 = 7, // r | |
| 21 l8 = 8, // s | |
| 22 l9 = 9; // t | |
| 23 return 0; // u | |
| 24 } // v | |
| 25 | |
| 26 function listener(event, exec_state, event_data, data) { | |
| 27 if (event != Debug.DebugEvent.Break) return; | |
| 28 try { | |
| 29 var line = exec_state.frame(0).sourceLineText(); | |
| 30 var col = exec_state.frame(0).sourceColumn(); | |
| 31 print(line); | |
| 32 var match = line.match(/\/\/ (\w)$/); | |
| 33 assertEquals(2, match.length); | |
| 34 log.push(match[1] + col); | |
| 35 if (match[1] != "v") { | |
| 36 exec_state.prepareStep(Debug.StepAction.StepIn); | |
| 37 } | |
| 38 } catch (e) { | |
| 39 exception = e; | |
| 40 } | |
| 41 } | |
| 42 | |
| 43 var Debug = debug.Debug; | |
| 44 Debug.setListener(listener); | |
| 45 | |
| 46 debugger; // a | |
| 47 var g1 = 1, // b | |
| 48 g2 = 2, // c | |
| 49 g3; // d | |
| 50 let g4 = 4, // e | |
| 51 g5, // f | |
| 52 g6 = 6; // g | |
| 53 const g7 = 7, // h | |
| 54 g8 = 8, // i | |
| 55 g9 = f(); // j | |
| 56 | |
| 57 Debug.setListener(null); | |
| 58 | |
| 59 assertNull(exception); | |
| 60 | |
| 61 // Note that let declarations, if not explicitly initialized, implicitly | |
| 62 // initialize to undefined. | |
| 63 | |
| 64 var expected = [ | |
| 65 "a0", // debugger statement | |
| 66 "b9","c9", // global var | |
| 67 "e9","f4","g9", // global let | |
| 68 "h11","i11","j11", // global const | |
| 69 "l11","n11", // local var | |
| 70 "o6","p11","q11", // local let | |
| 71 "r13","s13","t13", // local const | |
| 72 "u2","v0", // return | |
| 73 ]; | |
| 74 assertEquals(expected, log); | |
| OLD | NEW |