From 5b5d7857e3bb98ade11b06d2b392a7058b1487ec Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 6 Apr 2021 17:08:29 +0100 Subject: [PATCH] LibWeb: Support the "ImplementedAs" IDL attribute on functions --- .../Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp b/Userland/Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp index 0e3ca31e85..291b5ebc64 100644 --- a/Userland/Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp +++ b/Userland/Libraries/LibWeb/CodeGenerators/WrapperGenerator.cpp @@ -1426,6 +1426,13 @@ JS_DEFINE_NATIVE_SETTER(@prototype_class@::@attribute.setter_callback@) function_generator.set("function.name", function.name); function_generator.set("function.name:snakecase", function.name.to_snakecase()); + if (function.extended_attributes.contains("ImplementedAs")) { + auto implemented_as = function.extended_attributes.get("ImplementedAs").value(); + function_generator.set("function.cpp_name", implemented_as); + } else { + function_generator.set("function.cpp_name", function.name.to_snakecase()); + } + function_generator.append(R"~~~( JS_DEFINE_NATIVE_FUNCTION(@prototype_class@::@function.name:snakecase@) { @@ -1441,7 +1448,7 @@ JS_DEFINE_NATIVE_FUNCTION(@prototype_class@::@function.name:snakecase@) function_generator.set(".arguments", arguments_builder.string_view()); function_generator.append(R"~~~( - auto retval = throw_dom_exception_if_needed(vm, global_object, [&] { return impl->@function.name:snakecase@(@.arguments@); }); + auto retval = throw_dom_exception_if_needed(vm, global_object, [&] { return impl->@function.cpp_name@(@.arguments@); }); if (should_return_empty(retval)) return JS::Value(); )~~~");