From 824cf570d30888a4309274d467c7c22dde884a69 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Tue, 29 Mar 2022 22:36:47 +0300 Subject: [PATCH] LibWeb: Stop casting unsigned long IDL return values to i32 These values may not fit into an i32. --- .../LibWeb/WrapperGenerator/IDLGenerators.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp index f0c4cc14ac..fec488a0a6 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp @@ -1310,9 +1310,13 @@ static void generate_wrap_statement(SourceGenerator& generator, String const& va scoped_generator.append(R"~~~( @result_expression@ JS::Value(@value@); )~~~"); - } else if (type.name == "short" || type.name == "unsigned short" || type.name == "long" || type.name == "unsigned long") { + } else if (type.name == "short" || type.name == "long" || type.name == "unsigned short") { scoped_generator.append(R"~~~( @result_expression@ JS::Value((i32)@value@); +)~~~"); + } else if (type.name == "unsigned long") { + scoped_generator.append(R"~~~( + @result_expression@ JS::Value((u32)@value@); )~~~"); } else if (type.name == "Location" || type.name == "Promise" || type.name == "Uint8Array" || type.name == "Uint8ClampedArray" || type.name == "any") { scoped_generator.append(R"~~~(