Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: test/mjsunit/debug-step-turbofan.js

Issue 2466273005: [debugger] Further stepping support in test wrapper (Closed)
Patch Set: Move more tests Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/mjsunit/debug-step-stub-callfunction.js ('k') | test/mjsunit/debug-stepin-accessor.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 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 --turbo-filter=g --allow-natives-syntax
6
7 // Test that Debug::PrepareForBreakPoints can deal with turbofan code (g)
8 // on the stack. Without deoptimization support, we will not be able to
9 // replace optimized code for g by unoptimized code with debug break slots.
10 // This would cause stepping to fail (V8 issue 3660).
11
12 function f(x) {
13 g(x);
14 var a = 0; // Break 6
15 return a; // Break 7
16 } // Break 8
17
18 function g(x) {
19 if (x) h();
20 var a = 0; // Break 2
21 var b = 1; // Break 3
22 return a + b; // Break 4
23 } // Break 5
24
25 function h() {
26 debugger; // Break 0
27 } // Break 1
28
29 Debug = debug.Debug;
30 var exception = null;
31 var break_count = 0;
32
33 function listener(event, exec_state, event_data, data) {
34 if (event != Debug.DebugEvent.Break) return;
35 try {
36 exec_state.prepareStep(Debug.StepAction.StepNext);
37 print(exec_state.frame(0).sourceLineText());
38 var match = exec_state.frame(0).sourceLineText().match(/Break (\d)/);
39 assertNotNull(match);
40 assertEquals(break_count++, parseInt(match[1]));
41 } catch (e) {
42 print(e + e.stack);
43 exception = e;
44 }
45 }
46
47 f(0);
48 f(0);
49 %OptimizeFunctionOnNextCall(g);
50
51 Debug.setListener(listener);
52
53 f(1);
54
55 Debug.setListener(null); // Break 9
56 assertNull(exception);
57 assertEquals(10, break_count);
OLDNEW
« no previous file with comments | « test/mjsunit/debug-step-stub-callfunction.js ('k') | test/mjsunit/debug-stepin-accessor.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698