summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Wilde <lukew@serenityos.org>2023-03-29 23:17:47 +0100
committerAndreas Kling <kling@serenityos.org>2023-04-06 11:36:56 +0200
commit686e3a0d94f48dd3df98b09458f9916f5b0dddf8 (patch)
tree7b59eb446442505d97b9df0e258bd09db0ef7c9e
parent5b906d9a403d5d9038901f97435bb57485de94e4 (diff)
downloadserenity-686e3a0d94f48dd3df98b09458f9916f5b0dddf8.zip
LibWeb: Support returning a callback function in IDL
-rw-r--r--Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp
index 958eddc946..3f3d5259a6 100644
--- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp
+++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp
@@ -122,6 +122,9 @@ CppType idl_type_name_to_cpp_type(Type const& type, Interface const& interface)
if (is_platform_object(type))
return { .name = DeprecatedString::formatted("JS::Handle<{}>", type.name()), .sequence_storage_type = SequenceStorageType::MarkedVector };
+ if (interface.callback_functions.contains(type.name()))
+ return { .name = "JS::Handle<WebIDL::CallbackType>", .sequence_storage_type = SequenceStorageType::MarkedVector };
+
if (type.is_string()) {
if (interface.extended_attributes.contains("UseNewAKString"))
return { .name = "String", .sequence_storage_type = SequenceStorageType::Vector };