| // |reftest| skip-if(!this.hasOwnProperty("TypedObject")) |
| |
| var BUGNUMBER = 578700; |
| var summary = 'Byte-sized type conversion'; |
| |
| var T = TypedObject; |
| |
| function check(results, ctor) { |
| print("ctor = ", ctor.toSource()); |
| |
| // check applying the ctor directly |
| for (var i = 0; i < results.length; i++) |
| assertEq(results[i][0], ctor(results[i][1])); |
| |
| // check writing and reading from a struct |
| var S = new T.StructType({f: ctor}); |
| for (var i = 0; i < results.length; i++) { |
| var s = new S({f: results[i][1]}); |
| assertEq(results[i][0], s.f); |
| } |
| } |
| |
| function runTests() { |
| print(BUGNUMBER + ": " + summary); |
| |
| var int8results = [ |
| [22, 22], |
| [-128, 128], |
| [-1, 255], |
| [-128, -128], |
| [127, -129], |
| [0x75, 0x7575], |
| [-123, 0x7585] |
| ]; |
| check(int8results, T.int8); |
| |
| var uint8results = [ |
| [22, 22], |
| [128, 128], |
| [255, 255], |
| [0, 256], |
| [128, -128], |
| [127, -129], |
| [129, 129], |
| [0x75, 0x7575], |
| [0x85, 0x7585] |
| ]; |
| check(uint8results, T.uint8); |
| |
| var uint8clampedresults = [ |
| [22, 22], |
| [128, 128], |
| [255, 255], |
| [0, -128], |
| [0, -129], |
| [129, 129], |
| [255, 0x7575], |
| [255, 0x7585] |
| ]; |
| check(uint8clampedresults, T.uint8Clamped); |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("Tests complete"); |
| } |
| |
| runTests(); |