File tree Expand file tree Collapse file tree 3 files changed +10
-4
lines changed
Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator
Userland/Libraries/LibIDL Expand file tree Collapse file tree 3 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -77,10 +77,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
77
77
StringBuilder builder;
78
78
builder.append (namespace_);
79
79
builder.append (" ::" sv);
80
- builder.append (interface.name );
80
+ builder.append (interface.implemented_name );
81
81
interface.fully_qualified_name = builder.to_byte_string ();
82
82
} else {
83
- interface.fully_qualified_name = interface.name ;
83
+ interface.fully_qualified_name = interface.implemented_name ;
84
84
}
85
85
86
86
if constexpr (BINDINGS_GENERATOR_DEBUG) {
Original file line number Diff line number Diff line change @@ -634,8 +634,13 @@ void Parser::parse_interface(Interface& interface)
634
634
else
635
635
interface.namespaced_name = interface.name ;
636
636
637
- interface.constructor_class = ByteString::formatted (" {}Constructor" , interface.name );
638
- interface.prototype_class = ByteString::formatted (" {}Prototype" , interface.name );
637
+ if (auto maybe_implemented_as = interface.extended_attributes .get (" ImplementedAs" ); maybe_implemented_as.has_value ())
638
+ interface.implemented_name = maybe_implemented_as.release_value ();
639
+ else
640
+ interface.implemented_name = interface.name ;
641
+
642
+ interface.constructor_class = ByteString::formatted (" {}Constructor" , interface.implemented_name );
643
+ interface.prototype_class = ByteString::formatted (" {}Prototype" , interface.implemented_name );
639
644
interface.prototype_base_class = ByteString::formatted (" {}Prototype" , interface.parent_name .is_empty () ? " Object" : interface.parent_name );
640
645
interface.global_mixin_class = ByteString::formatted (" {}GlobalMixin" , interface.name );
641
646
consume_whitespace ();
Original file line number Diff line number Diff line change @@ -260,6 +260,7 @@ class Interface {
260
260
ByteString name;
261
261
ByteString parent_name;
262
262
ByteString namespaced_name;
263
+ ByteString implemented_name;
263
264
264
265
bool is_namespace { false };
265
266
bool is_mixin { false };
You can’t perform that action at this time.
0 commit comments