OLD | NEW |
1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 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 13 matching lines...) Expand all Loading... |
24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 25 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | 27 |
28 /** | 28 /** |
29 * @fileoverview Test splice, shift, unshift, slice and join on small | 29 * @fileoverview Test splice, shift, unshift, slice and join on small |
30 * and large arrays. Some of these methods are specified such that they | 30 * and large arrays. Some of these methods are specified such that they |
31 * should work on other objects too, so we test that too. | 31 * should work on other objects too, so we test that too. |
32 */ | 32 */ |
33 | 33 |
34 var LARGE = 40000000; | 34 var LARGE = 4000000; |
35 var VERYLARGE = 4000000000; | 35 var VERYLARGE = 4000000000; |
36 | 36 |
37 // Nicer for firefox 1.5. Unless you uncomment the following two lines, | 37 // Nicer for firefox 1.5. Unless you uncomment the following two lines, |
38 // smjs will appear to hang on this file. | 38 // smjs will appear to hang on this file. |
39 //var LARGE = 40000; | 39 //var LARGE = 40000; |
40 //var VERYLARGE = 40000; | 40 //var VERYLARGE = 40000; |
41 | 41 |
42 var fourhundredth = LARGE/400; | 42 var fourhundredth = LARGE/400; |
43 | 43 |
44 function PseudoArray() { | 44 function PseudoArray() { |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 } | 269 } |
270 | 270 |
271 // Lets see if performance is reasonable. | 271 // Lets see if performance is reasonable. |
272 | 272 |
273 var a = new Array(LARGE + 10); | 273 var a = new Array(LARGE + 10); |
274 for (var i = 0; i < a.length; i += 1000) { | 274 for (var i = 0; i < a.length; i += 1000) { |
275 a[i] = i; | 275 a[i] = i; |
276 } | 276 } |
277 | 277 |
278 // Take something near the end of the array. | 278 // Take something near the end of the array. |
279 for (var i = 0; i < 100; i++) { | 279 for (var i = 0; i < 10; i++) { |
280 var top = a.splice(LARGE, 5); | 280 var top = a.splice(LARGE, 5); |
281 assertEquals(5, top.length); | 281 assertEquals(5, top.length); |
282 assertEquals(LARGE, top[0]); | 282 assertEquals(LARGE, top[0]); |
283 assertEquals("undefined", typeof(top[1])); | 283 assertEquals("undefined", typeof(top[1])); |
284 assertEquals(LARGE + 5, a.length); | 284 assertEquals(LARGE + 5, a.length); |
285 a.splice(LARGE, 0, LARGE); | 285 a.splice(LARGE, 0, LARGE); |
286 a.length = LARGE + 10; | 286 a.length = LARGE + 10; |
287 } | 287 } |
288 | 288 |
289 var a = new Array(LARGE + 10); | 289 var a = new Array(LARGE + 10); |
(...skipping 15 matching lines...) Expand all Loading... |
305 // Test http://b/issue?id=1202711 | 305 // Test http://b/issue?id=1202711 |
306 arr = [0]; | 306 arr = [0]; |
307 arr.length = 2; | 307 arr.length = 2; |
308 Array.prototype[1] = 1; | 308 Array.prototype[1] = 1; |
309 assertEquals(1, arr.pop()); | 309 assertEquals(1, arr.pop()); |
310 assertEquals(0, arr.pop()); | 310 assertEquals(0, arr.pop()); |
311 Array.prototype[1] = undefined; | 311 Array.prototype[1] = undefined; |
312 | 312 |
313 // Test http://code.google.com/p/chromium/issues/detail?id=21860 | 313 // Test http://code.google.com/p/chromium/issues/detail?id=21860 |
314 Array.prototype.push.apply([], [1].splice(0, -(-1 % 5))); | 314 Array.prototype.push.apply([], [1].splice(0, -(-1 % 5))); |
OLD | NEW |