mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-28 10:37:17 +02:00
LibWeb: Support non-interface top-level extended attributes
This commit is contained in:
committed by
Andreas Kling
parent
c14cb65215
commit
9ff79c9d54
Notes:
sideshowbarker
2024-07-17 16:26:53 +09:00
Author: https://github.com/IdanHo Commit: https://github.com/SerenityOS/serenity/commit/9ff79c9d54 Pull-request: https://github.com/SerenityOS/serenity/pull/13369 Reviewed-by: https://github.com/alimpfard ✅
@@ -725,6 +725,9 @@ void Parser::parse_interface_mixin(Interface& interface)
|
||||
void Parser::parse_non_interface_entities(bool allow_interface, Interface& interface)
|
||||
{
|
||||
while (!lexer.is_eof()) {
|
||||
HashMap<String, String> extended_attributes;
|
||||
if (lexer.consume_specific('['))
|
||||
extended_attributes = parse_extended_attributes();
|
||||
if (lexer.next_is("dictionary")) {
|
||||
parse_dictionary(interface);
|
||||
} else if (lexer.next_is("enum")) {
|
||||
@@ -748,6 +751,7 @@ void Parser::parse_non_interface_entities(bool allow_interface, Interface& inter
|
||||
report_parsing_error("expected 'enum' or 'dictionary'", filename, input, current_offset);
|
||||
}
|
||||
} else {
|
||||
interface.extended_attributes = move(extended_attributes);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -811,9 +815,6 @@ NonnullOwnPtr<Interface> Parser::parse()
|
||||
interface->all_imported_paths = s_all_imported_paths;
|
||||
interface->required_imported_paths = required_imported_paths;
|
||||
|
||||
if (lexer.consume_specific('['))
|
||||
interface->extended_attributes = parse_extended_attributes();
|
||||
|
||||
parse_non_interface_entities(true, *interface);
|
||||
|
||||
if (lexer.consume_specific("interface"))
|
||||
|
||||
Reference in New Issue
Block a user