From 15f44eecca55033c83936a1c9a73b8bf0c119f76 Mon Sep 17 00:00:00 2001 From: Luke Wilde Date: Sat, 4 Jun 2022 03:13:44 +0100 Subject: [PATCH] LibWeb/IDL: Always throw an error if string does not match an enum value Previously we only threw an error if the enum was used as a function argument. However, we are supposed to throw an error no matter the context it is used in. --- .../LibWeb/WrapperGenerator/IDLGenerators.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp index d4ca97e4f6..a31abdbd7a 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp @@ -265,7 +265,7 @@ static bool should_emit_wrapper_factory(IDL::Interface const& interface) } template -static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter, String const& js_name, String const& js_suffix, String const& cpp_name, IDL::Interface const& interface, bool legacy_null_to_empty_string = false, bool optional = false, Optional optional_default_value = {}, bool variadic = false, size_t recursion_depth = 0, bool used_as_argument = false) +static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter, String const& js_name, String const& js_suffix, String const& cpp_name, IDL::Interface const& interface, bool legacy_null_to_empty_string = false, bool optional = false, Optional optional_default_value = {}, bool variadic = false, size_t recursion_depth = 0) { auto scoped_generator = generator.fork(); auto acceptable_cpp_name = make_input_acceptable_cpp(cpp_name); @@ -592,8 +592,7 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter )~~~"); } - if (used_as_argument) { - enum_generator.append(R"~~~( + enum_generator.append(R"~~~( @else@ return vm.throw_completion(global_object, JS::ErrorType::InvalidEnumerationValue, @js_name.as_string@, "@parameter.type.name@"); )~~~"); @@ -1218,7 +1217,7 @@ static void generate_arguments(SourceGenerator& generator, Vector