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

Side by Side Diff: test/mjsunit/es6/array-iterator-turbo.js

Issue 2853783003: [tests] Fix and un-skip mjsunit/es6/array-iterator-turbo (Closed)
Patch Set: Created 3 years, 7 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 | « src/runtime/runtime-test.cc ('k') | 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 2016 the V8 project authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --turbo --turbo-escape --allow-natives-syntax --no-always-opt 5 // Flags: --turbo --turbo-escape --allow-natives-syntax --no-always-opt
6 // Flags: --opt --turbo-filter=* 6 // Flags: --opt --turbo-filter=*
7 7
8 "use strict"; 8 "use strict";
9 9
10 let global = this; 10 let global = this;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 for (let key of Object.keys(runners)) { 95 for (let key of Object.keys(runners)) {
96 let fn = runners[key]; 96 let fn = runners[key];
97 let { array, expected, array2, expected2 } = tests[key]; 97 let { array, expected, array2, expected2 } = tests[key];
98 98
99 // Warmup: 99 // Warmup:
100 fn(array); 100 fn(array);
101 fn(array); 101 fn(array);
102 %OptimizeFunctionOnNextCall(fn); 102 %OptimizeFunctionOnNextCall(fn);
103 fn(array); 103 fn(array);
104 104
105 // TODO(bmeurer): FAST_HOLEY_DOUBLE_ELEMENTS maps generally deopt when 105 assertOptimized(fn, '', key);
106 // a hole is encountered. Test should be fixed once that is corrected.
107 let expect_deopt = /HOLEY_DOUBLE/.test(key);
108
109 if (expect_deopt) {
110 assertUnoptimized(fn, '', key);
111 } else {
112 assertOptimized(fn, '', key);
113 }
114 assertEquals(expected, fn(array), key); 106 assertEquals(expected, fn(array), key);
115 if (expect_deopt) { 107 assertOptimized(fn, '', key);
116 assertUnoptimized(fn, '', key);
117 } else {
118 assertOptimized(fn, '', key);
119 }
120 108
121 // Check no deopt when another array with the same map is used 109 // Check no deopt when another array with the same map is used
122 assertTrue(%HaveSameMap(array, array2), key); 110 assertTrue(%HaveSameMap(array, array2), key);
123 if (expect_deopt) { 111 assertOptimized(fn, '', key);
124 assertUnoptimized(fn, '', key);
125 } else {
126 assertOptimized(fn, '', key);
127 }
128 assertEquals(expected2, fn(array2), key); 112 assertEquals(expected2, fn(array2), key);
129 113
130 // CheckMaps bailout 114 // CheckMaps bailout
131 let newArray = Object.defineProperty( 115 let newArray = Object.defineProperty(
132 [1, 2, 3], 2, { enumerable: false, configurable: false, 116 [1, 2, 3], 2, { enumerable: false, configurable: false,
133 get() { return 7; } }); 117 get() { return 7; } });
134 fn(newArray); 118 fn(newArray);
135 assertUnoptimized(fn, '', key); 119 assertUnoptimized(fn, '', key);
136 } 120 }
137 }, 121 },
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 208
225 // Not deoptimized when called on typed array of same type / map 209 // Not deoptimized when called on typed array of same type / map
226 assertTrue(%HaveSameMap(array, array2)); 210 assertTrue(%HaveSameMap(array, array2));
227 assertEquals(expected2, sum(array2), key); 211 assertEquals(expected2, sum(array2), key);
228 assertOptimized(sum, '', key); 212 assertOptimized(sum, '', key);
229 213
230 // Throw when detached 214 // Throw when detached
231 let clone = new array.constructor(array); 215 let clone = new array.constructor(array);
232 %ArrayBufferNeuter(clone.buffer); 216 %ArrayBufferNeuter(clone.buffer);
233 assertThrows(() => sum(clone), TypeError); 217 assertThrows(() => sum(clone), TypeError);
218
219 // Clear the slate for the next iteration.
220 %DeoptimizeFunction(sum);
221 %ClearFunctionFeedback(sum);
234 } 222 }
235 } 223 }
236 }; 224 };
237 225
238 for (let name of Object.keys(tests)) { 226 for (let name of Object.keys(tests)) {
239 let test = tests[name]; 227 let test = tests[name];
240 test(); 228 test();
241 } 229 }
OLDNEW
« no previous file with comments | « src/runtime/runtime-test.cc ('k') | test/mjsunit/mjsunit.status » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698