diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp index 0d9c50b8f1..63c4389785 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp @@ -336,23 +336,19 @@ static void generate_to_cpp(SourceGenerator& generator, ParameterType& parameter } else if (IDL::is_wrappable_type(*parameter.type)) { if (!parameter.type->nullable) { scoped_generator.append(R"~~~( - auto @cpp_name@_object = TRY(@js_name@@js_suffix@.to_object(global_object)); - - if (!is<@wrapper_name@>(@cpp_name@_object)) + if (!@js_name@@js_suffix@.is_object() || !is<@wrapper_name@>(@js_name@@js_suffix@.as_object())) return vm.throw_completion(global_object, JS::ErrorType::NotAnObjectOfType, "@parameter.type.name@"); - auto& @cpp_name@ = static_cast<@wrapper_name@*>(@cpp_name@_object)->impl(); + auto& @cpp_name@ = static_cast<@wrapper_name@&>(@js_name@@js_suffix@.as_object()).impl(); )~~~"); } else { scoped_generator.append(R"~~~( @parameter.type.name@* @cpp_name@ = nullptr; if (!@js_name@@js_suffix@.is_nullish()) { - auto @cpp_name@_object = TRY(@js_name@@js_suffix@.to_object(global_object)); - - if (!is<@wrapper_name@>(@cpp_name@_object)) + if (!@js_name@@js_suffix@.is_object() || !is<@wrapper_name@>(@js_name@@js_suffix@.as_object())) return vm.throw_completion(global_object, JS::ErrorType::NotAnObjectOfType, "@parameter.type.name@"); - @cpp_name@ = &static_cast<@wrapper_name@*>(@cpp_name@_object)->impl(); + @cpp_name@ = &static_cast<@wrapper_name@&>(@js_name@@js_suffix@.as_object()).impl(); } )~~~"); }