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 |