Home | History | Annotate | Download | only in es6
      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