1 // Copyright 2014 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 6 var constructors = [Uint8Array, Int8Array, 7 Uint16Array, Int16Array, 8 Uint32Array, Int32Array, 9 Float32Array, Float64Array, 10 Uint8ClampedArray]; 11 12 function TestTypedArrayPrototype(constructor) { 13 assertTrue(constructor.prototype.hasOwnProperty('entries')); 14 assertTrue(constructor.prototype.hasOwnProperty('values')); 15 assertTrue(constructor.prototype.hasOwnProperty('keys')); 16 assertTrue(constructor.prototype.hasOwnProperty(Symbol.iterator)); 17 18 assertFalse(constructor.prototype.propertyIsEnumerable('entries')); 19 assertFalse(constructor.prototype.propertyIsEnumerable('values')); 20 assertFalse(constructor.prototype.propertyIsEnumerable('keys')); 21 assertFalse(constructor.prototype.propertyIsEnumerable(Symbol.iterator)); 22 23 assertEquals(Array.prototype.entries, constructor.prototype.entries); 24 assertEquals(Array.prototype[Symbol.iterator], constructor.prototype.values); 25 assertEquals(Array.prototype.keys, constructor.prototype.keys); 26 assertEquals(Array.prototype[Symbol.iterator], constructor.prototype[Symbol.iterator]); 27 } 28 constructors.forEach(TestTypedArrayPrototype); 29 30 31 function TestTypedArrayValues(constructor) { 32 var array = [1, 2, 3]; 33 var i = 0; 34 for (var value of new constructor(array)) { 35 assertEquals(array[i++], value); 36 } 37 assertEquals(i, array.length); 38 } 39 constructors.forEach(TestTypedArrayValues); 40