| Index: test/mjsunit/harmony/typedarrays.js
|
| diff --git a/test/mjsunit/harmony/typedarrays.js b/test/mjsunit/harmony/typedarrays.js
|
| index 70bd17e3382db1cdb115d5aae6e48cf9141bc82a..57057a844fc5933189ca7af42fd1b4df9de156e3 100644
|
| --- a/test/mjsunit/harmony/typedarrays.js
|
| +++ b/test/mjsunit/harmony/typedarrays.js
|
| @@ -276,6 +276,38 @@ function TestTypedArray(constr, elementSize, typicalElement) {
|
| assertFalse(!!desc.writable);
|
| assertFalse(!!desc.set);
|
| assertEquals("function", typeof desc.get);
|
| +
|
| + // Test that the constructor can be called with an iterable
|
| + function* gen() { for (var i = 0; i < 10; i++) yield i; }
|
| + var genArr = new constr(gen());
|
| + assertEquals(10, genArr.length);
|
| + assertEquals(0, genArr[0]);
|
| + assertEquals(9, genArr[9]);
|
| + // Arrays can be converted to TypedArrays
|
| + genArr = new constr([1, 2, 3]);
|
| + assertEquals(3, genArr.length);
|
| + assertEquals(1, genArr[0]);
|
| + assertEquals(3, genArr[2]);
|
| + // Redefining Array.prototype[Symbol.iterator] still works
|
| + var arrayIterator = Array.prototype[Symbol.iterator];
|
| + Array.prototype[Symbol.iterator] = gen;
|
| + genArr = new constr([1, 2, 3]);
|
| + assertEquals(10, genArr.length);
|
| + assertEquals(0, genArr[0]);
|
| + assertEquals(9, genArr[9]);
|
| + Array.prototype[Symbol.iterator] = arrayIterator;
|
| + // Other array-like things can be made into a TypedArray
|
| + var myObject = { 0: 5, 1: 6, length: 2 };
|
| + genArr = new constr(myObject);
|
| + assertEquals(2, genArr.length);
|
| + assertEquals(5, genArr[0]);
|
| + assertEquals(6, genArr[1]);
|
| + // Iterator takes precedence over array-like
|
| + myObject[Symbol.iterator] = gen;
|
| + genArr = new constr(myObject);
|
| + assertEquals(10, genArr.length);
|
| + assertEquals(0, genArr[0]);
|
| + assertEquals(9, genArr[9]);
|
| }
|
|
|
| TestTypedArray(Uint8Array, 1, 0xFF);
|
|
|