Chromium Code Reviews| Index: test/mjsunit/external-array.js |
| diff --git a/test/mjsunit/external-array.js b/test/mjsunit/external-array.js |
| index 81c6cfe8b44fa00d4c73a2d20078f3337149ff24..898accc52939c2ab6beadd5540ef0d8daac39e99 100644 |
| --- a/test/mjsunit/external-array.js |
| +++ b/test/mjsunit/external-array.js |
| @@ -43,6 +43,55 @@ f(a); |
| assertEquals(0, a[0]); |
| assertEquals(0, a[1]); |
| +// No-parameter constructor should fail right now. |
| +function abfunc1() { |
| + return new ArrayBuffer(); |
| +} |
| +assertThrows(abfunc1); |
| + |
| +// Test derivation from an ArrayBuffer |
| +var ab = new ArrayBuffer(12); |
| +var derived_uint8 = new Uint8Array(ab); |
| +assertEquals(12, derived_uint8.length); |
| +var derived_uint32 = new Uint32Array(ab); |
| +assertEquals(3, derived_uint32.length); |
| +var derived_uint32_2 = new Uint32Array(ab,4); |
| +assertEquals(2, derived_uint32_2.length); |
| +var derived_uint32_3 = new Uint32Array(ab,4,1); |
| +assertEquals(1, derived_uint32_3.length); |
| + |
| +function abfunc2() { |
| + new Uint32Array(ab,3); |
| +} |
| +assertThrows(abfunc2); |
| + |
| +// If a given byteOffset and length references an area beyond the end of the |
| +// ArrayBuffer an exception is raised. |
| +function abfunc3() { |
| + new Uint32Array(ab,4,3); |
| +} |
| +assertThrows(abfunc3); |
| +function abfunc4() { |
| + new Uint32Array(ab,13); |
|
Jakob Kummerow
2012/01/11 13:54:27
s/13/16/ to avoid triggering the "offset must be m
danno
2012/01/11 15:10:20
Done.
|
| +} |
| +assertThrows(abfunc4); |
| + |
| +// The given byteOffset must be a multiple of the element size of the specific |
| +// type, otherwise an exception is raised. |
| +function abfunc5() { |
|
Jakob Kummerow
2012/01/11 13:54:27
nit: AFAICS, abfunc5 and abfunc2 test the same thi
danno
2012/01/11 15:10:20
Done.
|
| + new Uint32Array(ab,5); |
| +} |
| +assertThrows(abfunc5); |
| + |
| +// If length is not explicitly specified, the length of the ArrayBuffer minus |
| +// the byteOffset must be a multiple of the element size of the specific type, |
| +// or an exception is raised. |
| +var ab2 = new ArrayBuffer(13); |
| +function abfunc6() { |
| + new Uint32Array(ab,1); |
|
Jakob Kummerow
2012/01/11 13:54:27
This doesn't test what the comment says (13-1 is,
|
| +} |
| +assertThrows(abfunc6); |
| + |
| // Test the correct behavior of the |BYTES_PER_ELEMENT| property (which is |
| // "constant", but not read-only). |
| a = new Int32Array(2); |