Chromium Code Reviews| Index: test/mjsunit/harmony/typedarrays.js |
| diff --git a/test/mjsunit/harmony/typedarrays.js b/test/mjsunit/harmony/typedarrays.js |
| index 70bd17e3382db1cdb115d5aae6e48cf9141bc82a..8c520151e86e8d2d16bb02ffbc666baacff34d59 100644 |
| --- a/test/mjsunit/harmony/typedarrays.js |
| +++ b/test/mjsunit/harmony/typedarrays.js |
| @@ -69,21 +69,21 @@ function TestByteLengthNotWritable() { |
| TestByteLengthNotWritable(); |
| -function TestSlice(expectedResultLen, initialLen, start, end) { |
| - var ab = new ArrayBuffer(initialLen); |
| - var a1 = new Uint8Array(ab); |
| - for (var i = 0; i < a1.length; i++) { |
| - a1[i] = 0xCA; |
| - } |
| - var slice = ab.slice(start, end); |
| - assertSame(expectedResultLen, slice.byteLength); |
| - var a2 = new Uint8Array(slice); |
| - for (var i = 0; i < a2.length; i++) { |
| - assertSame(0xCA, a2[i]); |
| +function TestArrayBufferSlice() { |
| + function TestSlice(expectedResultLen, initialLen, start, end) { |
| + var ab = new ArrayBuffer(initialLen); |
| + var a1 = new Uint8Array(ab); |
| + for (var i = 0; i < a1.length; i++) { |
| + a1[i] = 0xCA; |
| + } |
| + var slice = ab.slice(start, end); |
| + assertSame(expectedResultLen, slice.byteLength); |
| + var a2 = new Uint8Array(slice); |
| + for (var i = 0; i < a2.length; i++) { |
| + assertSame(0xCA, a2[i]); |
| + } |
| } |
| -} |
| -function TestArrayBufferSlice() { |
| var ab = new ArrayBuffer(1024); |
| var ab1 = ab.slice(512, 1024); |
| assertSame(512, ab1.byteLength); |
| @@ -119,6 +119,55 @@ function TestArrayBufferSlice() { |
| TestArrayBufferSlice(); |
| +function TestTypedArraySlice() { |
| + function TestSlice(expectedResultLen, initialLen, start, end) { |
| + var a1 = new Uint32Array(initialLen); |
|
arv (Not doing code reviews)
2015/05/01 14:09:31
Maybe pass the constructor to this function so tha
|
| + for (var i = 0; i < a1.length; i++) { |
| + a1[i] = 0x12345678; |
| + } |
| + var slice = a1.slice(start, end); |
| + assertSame(expectedResultLen, slice.length); |
| + var a2 = new Uint32Array(slice); |
| + for (var i = 0; i < a2.length; i++) { |
| + assertSame(0x12345678, a2[i]); |
| + } |
| + } |
| + |
| + var ab = new Uint32Array(1024); |
| + var ab1 = ab.slice(512, 1024); |
| + assertSame(512, ab1.length); |
| + |
| + TestSlice(512, 1024, 512, 1024); |
| + TestSlice(512, 1024, 512); |
| + |
| + TestSlice(0, 0, 1, 20); |
| + TestSlice(100, 100, 0, 100); |
| + TestSlice(100, 100, 0, 1000); |
| + |
| + TestSlice(0, 100, 5, 1); |
| + |
| + TestSlice(1, 100, -11, -10); |
| + TestSlice(9, 100, -10, 99); |
| + TestSlice(0, 100, -10, 80); |
| + TestSlice(10, 100, 80, -10); |
| + |
| + TestSlice(10, 100, 90, "100"); |
| + TestSlice(10, 100, "90", "100"); |
| + |
| + TestSlice(0, 100, 90, "abc"); |
| + TestSlice(10, 100, "abc", 10); |
| + |
| + TestSlice(10, 100, 0.96, 10.96); |
| + TestSlice(10, 100, 0.96, 10.01); |
| + TestSlice(10, 100, 0.01, 10.01); |
| + TestSlice(10, 100, 0.01, 10.96); |
| + |
| + TestSlice(10, 100, 90); |
| + TestSlice(10, 100, -10); |
| +} |
| + |
| +TestTypedArraySlice(); |
| + |
| // Typed arrays |
| function TestTypedArray(constr, elementSize, typicalElement) { |