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

Side by Side Diff: test/mjsunit/getters-on-elements.js

Issue 2750623004: [test] Fix mjsunit/getters-on-elements to reset function state (Closed)
Patch Set: Blacklist the test Created 3 years, 9 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
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 function base_getter_test(create_func) { 80 function base_getter_test(create_func) {
81 var calls = 0; 81 var calls = 0;
82 82
83 // Testcase: setter in prototype chain 83 // Testcase: setter in prototype chain
84 foo = function(a) { var x = a[0]; return x + 3; } 84 foo = function(a) { var x = a[0]; return x + 3; }
85 var a = create_func(); 85 var a = create_func();
86 var ap = []; 86 var ap = [];
87 ap.__defineGetter__(0, function() { calls++; return 0; }); 87 ap.__defineGetter__(0, function() { calls++; return 0; });
88 88
89 foo(a); 89 foo(a);
90 assertUnoptimized(foo);
90 foo(a); 91 foo(a);
91 foo(a); 92 foo(a);
92 delete a[0]; 93 delete a[0];
93 94
94 assertEquals(0, calls); 95 assertEquals(0, calls);
95 a.__proto__ = ap; 96 a.__proto__ = ap;
96 foo(a); 97 foo(a);
97 assertEquals(1, calls); 98 assertEquals(1, calls);
98 optimize(foo); 99 optimize(foo);
99 foo(a); 100 foo(a);
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 bar(a); 159 bar(a);
159 optimize(bar); 160 optimize(bar);
160 bar(a); 161 bar(a);
161 assertOptimized(bar); 162 assertOptimized(bar);
162 assertEquals(0, calls); 163 assertEquals(0, calls);
163 delete a[3]; 164 delete a[3];
164 ap2.__defineGetter__(3, function() { calls++; return 0; }); 165 ap2.__defineGetter__(3, function() { calls++; return 0; });
165 bar(a); 166 bar(a);
166 assertOptimized(bar); 167 assertOptimized(bar);
167 assertEquals(1, calls); 168 assertEquals(1, calls);
169
170 // Reset the state of foo and bar.
171 clearFunctionTypeFeedback(foo);
172 deoptimizeFunction(foo);
173 clearFunctionTypeFeedback(foo);
174
175 clearFunctionTypeFeedback(bar);
176 deoptimizeFunction(bar);
177 clearFunctionTypeFeedback(bar);
168 } 178 }
169 179
170 // Verify that map transitions don't confuse us. 180 // Verify that map transitions don't confuse us.
171 create_func_smi = function() { return [,,,,,,5]; } 181 create_func_smi = function() { return [,,,,,,5]; }
172 create_func_double = function() { return [,,,,,,5.5]; } 182 create_func_double = function() { return [,,,,,,5.5]; }
173 create_func_fast = function() { return [,,,,,,true]; } 183 create_func_fast = function() { return [,,,,,,true]; }
174 184
175 var cf = [create_func_smi, 185 var cf = [create_func_smi,
176 create_func_double, 186 create_func_double,
177 create_func_fast]; 187 create_func_fast];
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 optimize(fun); 222 optimize(fun);
213 fun(a); 223 fun(a);
214 assertOptimized(fun); 224 assertOptimized(fun);
215 225
216 var calls = 0; 226 var calls = 0;
217 delete a[0]; 227 delete a[0];
218 ap.__defineGetter__(0, function() { calls++; return 0; }); 228 ap.__defineGetter__(0, function() { calls++; return 0; });
219 fun(a); 229 fun(a);
220 assertEquals(1, calls); 230 assertEquals(1, calls);
221 assertUnoptimized(fun); 231 assertUnoptimized(fun);
OLDNEW
« no previous file with comments | « no previous file | test/mjsunit/mjsunit.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698