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 3 // found in the LICENSE file. 4 5 var typedArrayConstructors = [ 6 Uint8Array, 7 Int8Array, 8 Uint16Array, 9 Int16Array, 10 Uint32Array, 11 Int32Array, 12 Uint8ClampedArray, 13 Float32Array, 14 Float64Array 15 ]; 16 17 for (var constructor of typedArrayConstructors) { 18 var array = new constructor([1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]); 19 20 // ---------------------------------------------------------------------- 21 // %TypedArray%.prototype.indexOf. 22 // ---------------------------------------------------------------------- 23 24 // Negative cases. 25 assertEquals(-1, new constructor([]).indexOf(1)); 26 assertEquals(-1, array.indexOf(4)); 27 assertEquals(-1, array.indexOf(3, array.length)); 28 29 assertEquals(2, array.indexOf(3)); 30 // Negative index out of range. 31 assertEquals(0, array.indexOf(1, -17)); 32 // Negative index in rage. 33 assertEquals(3, array.indexOf(1, -11)); 34 // Index in range. 35 assertEquals(3, array.indexOf(1, 1)); 36 assertEquals(3, array.indexOf(1, 3)); 37 assertEquals(6, array.indexOf(1, 4)); 38 39 // Basic TypedArray function properties 40 assertEquals(1, array.indexOf.length); 41 assertThrows(function(){ array.indexOf.call([1], 1); }, TypeError); 42 Object.defineProperty(array, 'length', {value: 1}); 43 assertEquals(array.indexOf(2), 1); 44 45 46 // ---------------------------------------------------------------------- 47 // %TypedArray%.prototype.lastIndexOf. 48 // ---------------------------------------------------------------------- 49 array = new constructor([1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]); 50 51 // Negative cases. 52 assertEquals(-1, new constructor([]).lastIndexOf(1)); 53 assertEquals(-1, array.lastIndexOf(1, -17)); 54 55 assertEquals(9, array.lastIndexOf(1)); 56 // Index out of range. 57 assertEquals(9, array.lastIndexOf(1, array.length)); 58 // Index in range. 59 assertEquals(0, array.lastIndexOf(1, 2)); 60 assertEquals(3, array.lastIndexOf(1, 4)); 61 assertEquals(3, array.lastIndexOf(1, 3)); 62 // Negative index in range. 63 assertEquals(0, array.lastIndexOf(1, -11)); 64 65 // Basic TypedArray function properties 66 assertEquals(1, array.lastIndexOf.length); 67 assertThrows(function(){ array.lastIndexOf.call([1], 1); }, TypeError); 68 Object.defineProperty(array, 'length', {value: 1}); 69 assertEquals(array.lastIndexOf(2), 10); 70 delete array.length; 71 } 72