| 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 // Tests for standard TypedArray array iteration functions. | 5 // Tests for standard TypedArray array iteration functions. | 
| 6 | 6 | 
| 7 // Flags: --allow-natives-syntax |  | 
| 8 |  | 
| 9 var typedArrayConstructors = [ | 7 var typedArrayConstructors = [ | 
| 10   Uint8Array, | 8   Uint8Array, | 
| 11   Int8Array, | 9   Int8Array, | 
| 12   Uint16Array, | 10   Uint16Array, | 
| 13   Int16Array, | 11   Int16Array, | 
| 14   Uint32Array, | 12   Uint32Array, | 
| 15   Int32Array, | 13   Int32Array, | 
| 16   Uint8ClampedArray, | 14   Uint8ClampedArray, | 
| 17   Float32Array, | 15   Float32Array, | 
| 18   Float64Array | 16   Float64Array | 
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 72     assertThrows(function() { | 70     assertThrows(function() { | 
| 73       constructor.prototype.filter.call([], function() {}); | 71       constructor.prototype.filter.call([], function() {}); | 
| 74     }, TypeError); | 72     }, TypeError); | 
| 75 | 73 | 
| 76     // Shadowing the length property doesn't change anything | 74     // Shadowing the length property doesn't change anything | 
| 77     a = new constructor([1, 2]); | 75     a = new constructor([1, 2]); | 
| 78     Object.defineProperty(a, 'length', { value: 1 }); | 76     Object.defineProperty(a, 'length', { value: 1 }); | 
| 79     assertArrayLikeEquals([2], a.filter(function(elt) { | 77     assertArrayLikeEquals([2], a.filter(function(elt) { | 
| 80       return elt == 2; | 78       return elt == 2; | 
| 81     }), constructor); | 79     }), constructor); | 
| 82 |  | 
| 83     // Detached Operation |  | 
| 84     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |  | 
| 85     %ArrayBufferNeuter(array.buffer); |  | 
| 86     assertThrows(() => array.filter(() => false), TypeError); |  | 
| 87   })(); | 80   })(); | 
| 88 | 81 | 
| 89   (function TypedArrayMapTest() { | 82   (function TypedArrayMapTest() { | 
| 90     var a = new constructor([0, 1, 2, 3, 4]); | 83     var a = new constructor([0, 1, 2, 3, 4]); | 
| 91 | 84 | 
| 92     // Simple use. | 85     // Simple use. | 
| 93     var result = [1, 2, 3, 4, 5]; | 86     var result = [1, 2, 3, 4, 5]; | 
| 94     assertArrayLikeEquals(result, a.map(function(n) { return n + 1; }), | 87     assertArrayLikeEquals(result, a.map(function(n) { return n + 1; }), | 
| 95                           constructor); | 88                           constructor); | 
| 96     assertEquals(a, a); | 89     assertEquals(a, a); | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 130 | 123 | 
| 131     // Test that the result is converted to the right type | 124     // Test that the result is converted to the right type | 
| 132     assertArrayLikeEquals([3, 3], new constructor([1, 2]).map(function() { | 125     assertArrayLikeEquals([3, 3], new constructor([1, 2]).map(function() { | 
| 133       return "3"; | 126       return "3"; | 
| 134     }), constructor); | 127     }), constructor); | 
| 135     if (constructor !== Float32Array && constructor !== Float64Array) { | 128     if (constructor !== Float32Array && constructor !== Float64Array) { | 
| 136       assertArrayLikeEquals([0, 0], new constructor([1, 2]).map(function() { | 129       assertArrayLikeEquals([0, 0], new constructor([1, 2]).map(function() { | 
| 137         return NaN; | 130         return NaN; | 
| 138       }), constructor); | 131       }), constructor); | 
| 139     } | 132     } | 
| 140 |  | 
| 141     // Detached Operation |  | 
| 142     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |  | 
| 143     %ArrayBufferNeuter(array.buffer); |  | 
| 144     assertThrows(() => array.map((v) => v), TypeError); |  | 
| 145   })(); | 133   })(); | 
| 146 | 134 | 
| 147   // | 135   // | 
| 148   // %TypedArray%.prototype.some | 136   // %TypedArray%.prototype.some | 
| 149   // | 137   // | 
| 150   (function TypedArraySomeTest() { | 138   (function TypedArraySomeTest() { | 
| 151     var a = new constructor([0, 1, 2, 3, 4]); | 139     var a = new constructor([0, 1, 2, 3, 4]); | 
| 152 | 140 | 
| 153     // Simple use. | 141     // Simple use. | 
| 154     assertTrue(a.some(function(n) { return n == 3})); | 142     assertTrue(a.some(function(n) { return n == 3})); | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 194       constructor.prototype.some.call([], function() {}); | 182       constructor.prototype.some.call([], function() {}); | 
| 195     }, TypeError); | 183     }, TypeError); | 
| 196 | 184 | 
| 197     // Shadowing the length property doesn't change anything | 185     // Shadowing the length property doesn't change anything | 
| 198     a = new constructor([1, 2]); | 186     a = new constructor([1, 2]); | 
| 199     Object.defineProperty(a, 'length', { value: 1 }); | 187     Object.defineProperty(a, 'length', { value: 1 }); | 
| 200     assertEquals(true, a.some(function(elt) { return elt == 2; })); | 188     assertEquals(true, a.some(function(elt) { return elt == 2; })); | 
| 201     assertEquals(false, Array.prototype.some.call(a, function(elt) { | 189     assertEquals(false, Array.prototype.some.call(a, function(elt) { | 
| 202       return elt == 2; | 190       return elt == 2; | 
| 203     })); | 191     })); | 
| 204 |  | 
| 205     // Detached Operation |  | 
| 206     var array = new constructor([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); |  | 
| 207     %ArrayBufferNeuter(array.buffer); |  | 
| 208     assertThrows(() => array.some((v) => false), TypeError); |  | 
| 209   })(); | 192   })(); | 
| 210 | 193 | 
| 211 } | 194 } | 
| OLD | NEW | 
|---|