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