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

Side by Side Diff: test/mjsunit/debug-evaluate-locals-optimized.js

Issue 10234007: Remove more assumptions from debug tests. Even though a function (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 8 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 28 matching lines...) Expand all
39 { locals: {a1: 3, b1: 4}, args: { names: ["i", "x1", "y1"], values: [1, 5, 6] } }, 39 { locals: {a1: 3, b1: 4}, args: { names: ["i", "x1", "y1"], values: [1, 5, 6] } },
40 { locals: {a2: 5, b2: 6}, args: { names: ["i"], values: [2] } }, 40 { locals: {a2: 5, b2: 6}, args: { names: ["i"], values: [2] } },
41 { locals: {a3: 7, b3: 8}, args: { names: ["i", "x3", "y3", "z3"], values: [3, 9, 10, undefined] } }, 41 { locals: {a3: 7, b3: 8}, args: { names: ["i", "x3", "y3", "z3"], values: [3, 9, 10, undefined] } },
42 { locals: {a4: 9, b4: 10}, args: { names: ["i", "x4", "y4"], values: [4, 11, 1 2] } } 42 { locals: {a4: 9, b4: 10}, args: { names: ["i", "x4", "y4"], values: [4, 11, 1 2] } }
43 ]; 43 ];
44 44
45 function arraySum(arr) { 45 function arraySum(arr) {
46 return arr.reduce(function (a, b) { return a + b; }, 0); 46 return arr.reduce(function (a, b) { return a + b; }, 0);
47 } 47 }
48 48
49 function isCurrentlyOptimized(fun) {
50 // See runtime.cc.
51 return (%GetOptimizationStatus(fun) & 1) != 0;
52 }
53
54 function listener(event, exec_state, event_data, data) { 49 function listener(event, exec_state, event_data, data) {
55 try { 50 try {
56 if (event == Debug.DebugEvent.Break) 51 if (event == Debug.DebugEvent.Break)
57 { 52 {
58 assertEquals(6, exec_state.frameCount()); 53 assertEquals(6, exec_state.frameCount());
59 54
60 for (var i = 0; i < exec_state.frameCount(); i++) { 55 for (var i = 0; i < exec_state.frameCount(); i++) {
61 var frame = exec_state.frame(i); 56 var frame = exec_state.frame(i);
62 if (i < exec_state.frameCount() - 1) { 57 if (i < exec_state.frameCount() - 1) {
63 var expected_args = expected[i].args; 58 var expected_args = expected[i].args;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 } else { 137 } else {
143 assertFalse(frame.isConstructCall()); 138 assertFalse(frame.isConstructCall());
144 } 139 }
145 140
146 if (i > 4) { 141 if (i > 4) {
147 assertFalse(frame.isOptimizedFrame()); 142 assertFalse(frame.isOptimizedFrame());
148 assertFalse(frame.isInlinedFrame()); 143 assertFalse(frame.isInlinedFrame());
149 } 144 }
150 } 145 }
151 146
152 // When function f is optimized we expect an optimized frame for f. We
153 // can't say whether or not the top 3 frames (g1, g2 and g3) are
154 // optimized and inlined.
155 var frame4 = exec_state.frame(4);
156
157 if (isCurrentlyOptimized(f)) {
158 assertTrue(frame4.isOptimizedFrame());
159 assertFalse(frame4.isInlinedFrame());
160 }
161
162 // Indicate that all was processed. 147 // Indicate that all was processed.
163 listenerComplete = true; 148 listenerComplete = true;
164 } 149 }
165 } catch (e) { 150 } catch (e) {
166 exception = e.toString() + e.stack; 151 exception = e.toString() + e.stack;
167 }; 152 };
168 }; 153 };
169 154
170 for (var i = 0; i < 4; i++) f(expected.length - 1, 11, 12); 155 for (var i = 0; i < 4; i++) f(expected.length - 1, 11, 12);
171 %OptimizeFunctionOnNextCall(f); 156 %OptimizeFunctionOnNextCall(f);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 new f(expected.length - 1, 11, 12, 0); 197 new f(expected.length - 1, 11, 12, 0);
213 198
214 // Make sure that the debug event listener was invoked. 199 // Make sure that the debug event listener was invoked.
215 assertFalse(exception, "exception in listener " + exception) 200 assertFalse(exception, "exception in listener " + exception)
216 assertTrue(listenerComplete); 201 assertTrue(listenerComplete);
217 202
218 // Throw away type information for next run. 203 // Throw away type information for next run.
219 gc(); 204 gc();
220 205
221 Debug.setListener(null); 206 Debug.setListener(null);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698