| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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: --harmony-tolength | 5 // Flags: --harmony-tolength |
| 6 | 6 |
| 7 // Test array functions do not cause infinite loops when length is negative, | 7 // Test array functions do not cause infinite loops when length is negative, |
| 8 // max_value, etc. | 8 // max_value, etc. |
| 9 | 9 |
| 10 // ArrayToString | 10 // ArrayToString |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 assertEquals(0, result.length); | 26 assertEquals(0, result.length); |
| 27 | 27 |
| 28 // ArrayPush | 28 // ArrayPush |
| 29 | 29 |
| 30 var o = { length: Number.MIN_VALUE }; | 30 var o = { length: Number.MIN_VALUE }; |
| 31 Array.prototype.push.call(o, 1); | 31 Array.prototype.push.call(o, 1); |
| 32 assertEquals(1, o.length); | 32 assertEquals(1, o.length); |
| 33 assertEquals(1, o[0]); | 33 assertEquals(1, o[0]); |
| 34 | 34 |
| 35 var o = { length: Number.MAX_VALUE }; | 35 var o = { length: Number.MAX_VALUE }; |
| 36 Array.prototype.push.call(o, 1); | 36 assertThrows(() => Array.prototype.push.call(o, 1), TypeError); |
| 37 assertEquals(o.length, Number.MAX_SAFE_INTEGER + 1); | |
| 38 assertEquals(1, o[Number.MAX_SAFE_INTEGER]); | |
| 39 | |
| 40 Array.prototype.push.call(o, 2); | |
| 41 assertEquals(o.length, Number.MAX_SAFE_INTEGER + 1); | |
| 42 assertEquals(2, o[Number.MAX_SAFE_INTEGER]); | |
| 43 | 37 |
| 44 // ArrayPop | 38 // ArrayPop |
| 45 | 39 |
| 46 var o = { length: 0 }; | 40 var o = { length: 0 }; |
| 47 Array.prototype.pop.call(o); | 41 Array.prototype.pop.call(o); |
| 48 assertEquals(0, o.length); | 42 assertEquals(0, o.length); |
| 49 | 43 |
| 50 var o = { length: Number.MIN_VALUE }; | 44 var o = { length: Number.MIN_VALUE }; |
| 51 Array.prototype.pop.call(o); | 45 Array.prototype.pop.call(o); |
| 52 assertEquals(0, o.length); | 46 assertEquals(0, o.length); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 | 193 |
| 200 var o = { length: Number.MIN_VALUE }; | 194 var o = { length: Number.MIN_VALUE }; |
| 201 Array.prototype.reduceRight.call(o, func, 0); | 195 Array.prototype.reduceRight.call(o, func, 0); |
| 202 assertEquals(Number.MIN_VALUE, o.length); | 196 assertEquals(Number.MIN_VALUE, o.length); |
| 203 | 197 |
| 204 // ArrayFill | 198 // ArrayFill |
| 205 | 199 |
| 206 var o = { length: Number.MIN_VALUE }; | 200 var o = { length: Number.MIN_VALUE }; |
| 207 Array.prototype.fill(o, 0); | 201 Array.prototype.fill(o, 0); |
| 208 assertEquals(Number.MIN_VALUE, o.length); | 202 assertEquals(Number.MIN_VALUE, o.length); |
| OLD | NEW |