Chromium Code Reviews| Index: test/mjsunit/harmony/dataview-accessors.js |
| diff --git a/test/mjsunit/harmony/dataview-accessors.js b/test/mjsunit/harmony/dataview-accessors.js |
| index b655a4164a14d338a12a02a94ed5b59e22e0aed4..8cbff3d3c83de295e34f79509a27ddbbb276915d 100644 |
| --- a/test/mjsunit/harmony/dataview-accessors.js |
| +++ b/test/mjsunit/harmony/dataview-accessors.js |
| @@ -294,12 +294,53 @@ function TestSetters() { |
| runFloatTestCases(false, 7); |
| runNegativeIndexTests(false); |
| - |
| } |
| TestGetters(); |
| TestSetters(); |
| +function CheckOutOfRange(typename, value, expected) { |
|
titzer
2013/07/12 16:37:02
Mmmm...jsiness. Could we have a version of this te
Dmitry Lomov (no reviews)
2013/07/12 18:22:45
Done.
|
| + var view = new DataView(new ArrayBuffer(100)); |
| + assertSame(undefined, view["set" + typename](0, value)); |
| + assertSame(expected, view["get" + typename](0)); |
| + assertSame(undefined, view["set" + typename](0, value, true)); |
| + assertSame(expected, view["get" + typename](0, true)); |
| +} |
| + |
| +function TestOutOfRange() { |
| + CheckOutOfRange("Int8", 0x80, -0x80); |
| + CheckOutOfRange("Int8", 0x1000, 0); |
| + CheckOutOfRange("Int8", -0x81, 0x7F); |
| + |
| + CheckOutOfRange("Uint8", 0x100, 0); |
| + CheckOutOfRange("Uint8", 0x1000, 0); |
| + CheckOutOfRange("Uint8", -0x80, 0x80); |
| + CheckOutOfRange("Uint8", -1, 0xFF); |
| + CheckOutOfRange("Uint8", -0xFF, 1); |
| + |
| + CheckOutOfRange("Int16", 0x8000, -0x8000); |
| + CheckOutOfRange("Int16", 0x10000, 0); |
| + CheckOutOfRange("Int16", -0x8001, 0x7FFF); |
| + |
| + CheckOutOfRange("Uint16", 0x10000, 0); |
| + CheckOutOfRange("Uint16", 0x100000, 0); |
| + CheckOutOfRange("Uint16", -0x8000, 0x8000); |
| + CheckOutOfRange("Uint16", -1, 0xFFFF); |
| + CheckOutOfRange("Uint16", -0xFFFF, 1); |
| + |
| + CheckOutOfRange("Int32", 0x80000000, -0x80000000); |
| + CheckOutOfRange("Int32", 0x100000000, 0); |
| + CheckOutOfRange("Int32", -0x80000001, 0x7FFFFFFF); |
| + |
| + CheckOutOfRange("Uint32", 0x100000000, 0); |
| + CheckOutOfRange("Uint32", 0x1000000000, 0); |
| + CheckOutOfRange("Uint32", -0x80000000, 0x80000000); |
| + CheckOutOfRange("Uint32", -1, 0xFFFFFFFF); |
| + CheckOutOfRange("Uint32", -0xFFFFFFFF, 1); |
| +} |
| + |
| +TestOutOfRange(); |
| + |
| function TestGeneralAccessors() { |
| var a = new DataView(new ArrayBuffer(256)); |
| function CheckAccessor(name) { |