deps: update v8 to 4.3.61.21
[platform/upstream/nodejs.git] / deps / v8 / test / mjsunit / debug-allscopes-on-debugger.js
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 var exception = null;
9 var break_count = 0;
10
11 function listener(event, exec_state, event_data, data) {
12   try {
13     if (event == Debug.DebugEvent.Break) {
14       assertTrue(exec_state.frameCount() != 0, "FAIL: Empty stack trace");
15       // Count number of expected breakpoints in this source file.
16       if (!break_count) {
17         var source_text = exec_state.frame(0).func().script().source();
18         expected_breaks = source_text.match(/\/\/\s*Break\s+\d+\./g).length;
19         print("Expected breaks: " + expected_breaks);
20       }
21       var frameMirror = exec_state.frame(0);
22
23       frameMirror.allScopes();
24       var source = frameMirror.sourceLineText();
25       print("paused at: " + source);
26       assertTrue(source.indexOf("// Break " + break_count + ".") > 0,
27                  "Unexpected pause at: " + source + "\n" +
28                  "Expected: // Break " + break_count + ".");
29       ++break_count;
30
31       if (break_count !== expected_breaks) {
32         exec_state.prepareStep(Debug.StepAction.StepIn, 1);
33         print("Next step prepared");
34       }
35     }
36   } catch(e) {
37     exception = e;
38     print(e, e.stack);
39   }
40 };
41
42 Debug.setListener(listener);
43
44 var sum = 0;
45 (function (){
46   'use strict';
47
48   debugger; // Break 0.
49   var i = 0; // Break 1.
50   i++; // Break 2.
51   i++; // Break 3.
52   return i; // Break 4.
53 }()); // Break 5.
54
55 assertNull(exception); // Break 6.
56 assertEquals(expected_breaks, break_count);
57
58 Debug.setListener(null);