diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp index 52d9cacb32..f773058da7 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp @@ -589,6 +589,31 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter scoped_generator.append(R"~~~( else @cpp_name@ = @parameter.optional_default_value@L; +)~~~"); + } + } else if (parameter.type->name() == "unsigned long long") { + if (!optional || optional_default_value.has_value()) { + scoped_generator.append(R"~~~( + WebIDL::UnsignedLongLong @cpp_name@; +)~~~"); + } else { + scoped_generator.append(R"~~~( + Optional @cpp_name@; +)~~~"); + } + if (optional) { + scoped_generator.append(R"~~~( + if (!@js_name@@js_suffix@.is_undefined()) +)~~~"); + } + // FIXME: pass through [EnforceRange] and [Clamp] extended attributes + scoped_generator.append(R"~~~( + @cpp_name@ = TRY(convert_to_int(vm, @js_name@@js_suffix@)); +)~~~"); + if (optional_default_value.has_value()) { + scoped_generator.append(R"~~~( + else + @cpp_name@ = @parameter.optional_default_value@ULL; )~~~"); } } else if (parameter.type->name() == "Promise") {