diff --git a/Libraries/LibWeb/Infra/Types.h b/Libraries/LibWeb/Infra/Types.h new file mode 100644 index 0000000000000..24411af15cf7c --- /dev/null +++ b/Libraries/LibWeb/Infra/Types.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024, Sam Atkins + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include +#include + +namespace Web::Infra { + +// https://infra.spec.whatwg.org/#booleans +// A boolean is either true or false. +using Boolean = bool; + +// https://infra.spec.whatwg.org/#8-bit-unsigned-integer +// An 8-bit unsigned integer is an integer in the range 0 to 255 (0 to 28 − 1), inclusive. +using Unsigned8BitInteger = u8; + +// https://infra.spec.whatwg.org/#16-bit-unsigned-integer +// A 16-bit unsigned integer is an integer in the range 0 to 65535 (0 to 216 − 1), inclusive. +using Unsigned16BitInteger = u16; + +// https://infra.spec.whatwg.org/#32-bit-unsigned-integer +// A 32-bit unsigned integer is an integer in the range 0 to 4294967295 (0 to 232 − 1), inclusive. +using Unsigned32BitInteger = u32; + +// https://infra.spec.whatwg.org/#64-bit-unsigned-integer +// A 64-bit unsigned integer is an integer in the range 0 to 18446744073709551615 (0 to 264 − 1), inclusive. +using Unsigned64BitInteger = u64; + +// https://infra.spec.whatwg.org/#128-bit-unsigned-integer +// A 128-bit unsigned integer is an integer in the range 0 to 340282366920938463463374607431768211455 (0 to 2128 − 1), inclusive. +using Unsigned128BitInteger = u128; + +// https://infra.spec.whatwg.org/#8-bit-signed-integer +// An 8-bit signed integer is an integer in the range −128 to 127 (−27 to 27 − 1), inclusive. +using Signed8BitInteger = i8; + +// https://infra.spec.whatwg.org/#16-bit-signed-integer +// A 16-bit signed integer is an integer in the range −32768 to 32767 (−215 to 215 − 1), inclusive. +using Signed16BitInteger = i16; + +// https://infra.spec.whatwg.org/#32-bit-signed-integer +// A 32-bit signed integer is an integer in the range −2147483648 to 2147483647 (−231 to 231 − 1), inclusive. +using Signed32BitInteger = i32; + +// https://infra.spec.whatwg.org/#64-bit-signed-integer +// A 64-bit signed integer is an integer in the range −9223372036854775808 to 9223372036854775807 (−263 to 263 − 1), inclusive. +using Signed64BitInteger = i64; + +} diff --git a/Libraries/LibWeb/WebIDL/Types.h b/Libraries/LibWeb/WebIDL/Types.h index 6aae400f2c6c1..c97181e10cd4d 100644 --- a/Libraries/LibWeb/WebIDL/Types.h +++ b/Libraries/LibWeb/WebIDL/Types.h @@ -6,41 +6,45 @@ #pragma once -#include +#include namespace Web::WebIDL { +// https://webidl.spec.whatwg.org/#idl-boolean +// The boolean type corresponds to booleans. +using Boolean = Infra::Boolean; + // https://webidl.spec.whatwg.org/#idl-byte -// The byte type is a signed integer type that has values in the range [−128, 127]. -using Byte = i8; +// The byte type corresponds to 8-bit signed integers. +using Byte = Infra::Signed8BitInteger; // https://webidl.spec.whatwg.org/#idl-octet -// The octet type is an unsigned integer type that has values in the range [0, 255]. -using Octet = u8; +// The octet type corresponds to 8-bit unsigned integers. +using Octet = Infra::Unsigned8BitInteger; // https://webidl.spec.whatwg.org/#idl-short -// The short type is a signed integer type that has values in the range [−32768, 32767]. -using Short = i16; +// The short type corresponds to 16-bit signed integers. +using Short = Infra::Signed16BitInteger; // https://webidl.spec.whatwg.org/#idl-unsigned-short -// The unsigned short type is an unsigned integer type that has values in the range [0, 65535]. -using UnsignedShort = u16; +// The unsigned short type corresponds to 16-bit unsigned integers. +using UnsignedShort = Infra::Unsigned16BitInteger; // https://webidl.spec.whatwg.org/#idl-long -// The long type is a signed integer type that has values in the range [−2147483648, 2147483647]. -using Long = i32; +// The long type corresponds to 32-bit signed integers. +using Long = Infra::Signed32BitInteger; // https://webidl.spec.whatwg.org/#idl-unsigned-long -// The unsigned long type is an unsigned integer type that has values in the range [0, 4294967295]. -using UnsignedLong = u32; +// The unsigned long type corresponds to 32-bit unsigned integers. +using UnsignedLong = Infra::Unsigned32BitInteger; // https://webidl.spec.whatwg.org/#idl-long-long -// The long long type is a signed integer type that has values in the range [−9223372036854775808, 9223372036854775807]. -using LongLong = i64; +// The long long type corresponds to 64-bit signed integers. +using LongLong = Infra::Signed64BitInteger; // https://webidl.spec.whatwg.org/#idl-unsigned-long-long -// The unsigned long long type is an unsigned integer type that has values in the range [0, 18446744073709551615]. -using UnsignedLongLong = u64; +// The unsigned long long type corresponds to 64-bit unsigned integers. +using UnsignedLongLong = Infra::Unsigned64BitInteger; // https://webidl.spec.whatwg.org/#idl-double // The double type is a floating point numeric type that corresponds to the set of finite