|
@@ -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) {
|
|
for (auto const& overload_set : interface.overload_sets) {
|
|
auto function_generator = generator.fork();
|
|
auto function_generator = generator.fork();
|
|
function_generator.set("function.name:snakecase", make_input_acceptable_cpp(overload_set.key.to_snakecase()));
|
|
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)
|
|
for (auto const& function : interface.functions)
|
|
generate_function(generator, function, StaticFunction::Yes, interface.namespace_class, interface.name, interface);
|
|
generate_function(generator, function, StaticFunction::Yes, interface.namespace_class, interface.name, interface);
|
|
for (auto const& overload_set : interface.overload_sets) {
|
|
for (auto const& overload_set : interface.overload_sets) {
|