Ben Murdoch | b8a8cc1 | 2014-11-26 15:28:44 +0000 | [diff] [blame^] | 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); |