// |reftest| skip-if(!this.hasOwnProperty("TypedObject")) var BUGNUMBER = 578700; var summary = 'Size and Alignment of TypedObjects types'; var actual = ''; var expect = ''; var ArrayType = TypedObject.ArrayType; var StructType = TypedObject.StructType; var uint8 = TypedObject.uint8; var uint16 = TypedObject.uint16; var uint32 = TypedObject.uint32; var uint8Clamped = TypedObject.uint8Clamped; var int8 = TypedObject.int8; var int16 = TypedObject.int16; var int32 = TypedObject.int32; var float32 = TypedObject.float32; var float64 = TypedObject.float64; function runTests() { printBugNumber(BUGNUMBER); printStatus(summary); var typesAndAlignments = [ {type: uint8, size: 1, alignment: 1}, {type: uint8Clamped, size: 1, alignment: 1}, {type: uint16, size: 2, alignment: 2}, {type: uint32, size: 4, alignment: 4}, {type: int8, size: 1, alignment: 1}, {type: int16, size: 2, alignment: 2}, {type: int32, size: 4, alignment: 4}, {type: float32, size: 4, alignment: 4}, {type: float64, size: 8, alignment: 8}, {type: new StructType({a: uint8, b: uint16, c: uint8}), size: 6, alignment: 2}, {type: new StructType({a: uint8, b: uint8, c: uint16}), size: 4, alignment: 2}, {type: new ArrayType(uint8, 32), size: 32, alignment: 1}, {type: new ArrayType(uint16, 16), size: 32, alignment: 2}, {type: new ArrayType(uint32, 8), size: 32, alignment: 4}, ]; for (var i = 0; i < typesAndAlignments.length; i++) { var test = typesAndAlignments[i]; print("Type:", test.type.toSource(), "Size:", test.type.byteLength, "Alignment:", test.type.byteAlignment); assertEq(test.type.byteLength, test.size); assertEq(test.type.byteAlignment, test.alignment); } if (typeof reportCompare === "function") reportCompare(true, true); print("Tests complete"); } runTests();