diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp index a3d12ccbce..5a5e8a63da 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp @@ -3703,6 +3703,12 @@ private: )~~~"); } + if (interface.extended_attributes.contains("WithFinalizer"sv)) { + generator.append(R"~~~( + virtual void finalize() override; +)~~~"); + } + for (auto const& overload_set : interface.overload_sets) { auto function_generator = generator.fork(); function_generator.set("function.name:snakecase", make_input_acceptable_cpp(overload_set.key.to_snakecase())); @@ -3835,6 +3841,15 @@ void @namespace_class@::visit_edges(JS::Cell::Visitor& visitor) )~~~"); } + if (interface.extended_attributes.contains("WithFinalizer"sv)) { + generator.append(R"~~~( +void @namespace_class@::finalize() +{ + @name@::finalize(*this); +} +)~~~"); + } + for (auto const& function : interface.functions) generate_function(generator, function, StaticFunction::Yes, interface.namespace_class, interface.name, interface); for (auto const& overload_set : interface.overload_sets) {