diff --git a/AK/Debug.h.in b/AK/Debug.h.in index df898965914..868faf03705 100644 --- a/AK/Debug.h.in +++ b/AK/Debug.h.in @@ -18,6 +18,10 @@ #cmakedefine01 BMP_DEBUG #endif +#ifndef BINDINGS_GENERATOR_DEBUG +#cmakedefine01 BINDINGS_GENERATOR_DEBUG +#endif + #ifndef CACHE_DEBUG #cmakedefine01 CACHE_DEBUG #endif @@ -502,10 +506,6 @@ #cmakedefine01 WINDOWMANAGER_DEBUG #endif -#ifndef WRAPPER_GENERATOR_DEBUG -#cmakedefine01 WRAPPER_GENERATOR_DEBUG -#endif - #ifndef WSMESSAGELOOP_DEBUG #cmakedefine01 WSMESSAGELOOP_DEBUG #endif diff --git a/Documentation/Browser/AddNewIDLFile.md b/Documentation/Browser/AddNewIDLFile.md index 7a59a345005..7f9609d5d85 100644 --- a/Documentation/Browser/AddNewIDLFile.md +++ b/Documentation/Browser/AddNewIDLFile.md @@ -28,7 +28,7 @@ interface CSSRule { - `#include ` to the includes list. - `ADD_WINDOW_OBJECT_INTERFACE(HTMLDetailsElement) \` to the macro at the bottom. -4. Add a `libweb_js_wrapper(HTML/HTMLDetailsElement)` call to [`LibWeb/idl_files.cmake`](../../Userland/Libraries/LibWeb/idl_files.cmake) +4. Add a `libweb_js_bindings(HTML/HTMLDetailsElement)` call to [`LibWeb/idl_files.cmake`](../../Userland/Libraries/LibWeb/idl_files.cmake) 5. Forward declare the generated classes in [`LibWeb/Forward.h`](../../Userland/Libraries/LibWeb/Forward.h): - `HTMLDetailsElement` in its namespace. @@ -38,5 +38,5 @@ interface CSSRule { - It must inherit from `public RefCounted` and `public Bindings::Wrappable` - It must have a public `using WrapperType = Bindings::HTMLDetailsElementWrapper;` -8. If your type isn't an Event or Element, you will need to add it to [`is_wrappable_type()`](../../Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp) +8. If your type isn't an Event or Element, you will need to add it to [`is_wrappable_type()`](../../Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp) so that it can be accepted as an IDL parameter, attribute or return type. diff --git a/Meta/CMake/all_the_debug_macros.cmake b/Meta/CMake/all_the_debug_macros.cmake index 90924fbc338..7af4b6e31a0 100644 --- a/Meta/CMake/all_the_debug_macros.cmake +++ b/Meta/CMake/all_the_debug_macros.cmake @@ -237,8 +237,8 @@ set(XML_PARSER_DEBUG ON) # set(DEBUG_STATUS_REGISTER ON) # False positive: DEFINE_DEBUG_REGISTER is used to define read/write methods for debug registers. # set(DEFINE_DEBUG_REGISTER ON) -# Clogs up build: The WrapperGenerator stuff is run at compile time. -# set(WRAPPER_GENERATOR_DEBUG ON) +# Clogs up build: The BindingsGenerator stuff is run at compile time. +# set(BINDINGS_GENERATOR_DEBUG ON) # Immediately finds violations during boot, shouldn't be discoverable by people who aren't working on fixing. # set(KMALLOC_VERIFY_NO_SPINLOCK_HELD ON) # False positive: CONSOLE_OUT_TO_BOCHS_DEBUG_PORT is a flag for ConsoleDevice, not a feature. diff --git a/Meta/CMake/libweb_generators.cmake b/Meta/CMake/libweb_generators.cmake index 967d0c9bbad..d4c0fec9cf5 100644 --- a/Meta/CMake/libweb_generators.cmake +++ b/Meta/CMake/libweb_generators.cmake @@ -90,7 +90,7 @@ function (generate_css_implementation) endfunction() -function (generate_js_wrappers target) +function (generate_js_bindings target) if (CMAKE_CURRENT_BINARY_DIR MATCHES ".*/LibWeb") # Serenity build @@ -104,8 +104,8 @@ function (generate_js_wrappers target) SET(LIBWEB_META_PREFIX "Lagom") endif() - function(libweb_js_wrapper class) - cmake_parse_arguments(PARSE_ARGV 1 LIBWEB_WRAPPER "ITERABLE" "" "") + function(libweb_js_bindings class) + cmake_parse_arguments(PARSE_ARGV 1 LIBWEB_BINDINGS "ITERABLE" "" "") get_filename_component(basename "${class}" NAME) set(BINDINGS_SOURCES "${LIBWEB_OUTPUT_FOLDER}Bindings/${basename}Constructor.h" @@ -120,8 +120,8 @@ function (generate_js_wrappers target) prototype-implementation ) - # FIXME: Instead of requiring a manual declaration of iterable wrappers, we should ask WrapperGenerator if it's iterable - if(LIBWEB_WRAPPER_ITERABLE) + # FIXME: Instead of requiring a manual declaration of iterable bindings, we should ask BindingsGenerator if it's iterable + if(LIBWEB_BINDINGS_ITERABLE) list(APPEND BINDINGS_SOURCES "${LIBWEB_OUTPUT_FOLDER}Bindings/${basename}IteratorPrototype.h" "${LIBWEB_OUTPUT_FOLDER}Bindings/${basename}IteratorPrototype.cpp" @@ -142,11 +142,11 @@ function (generate_js_wrappers target) list(TRANSFORM include_paths PREPEND -i) add_custom_command( OUTPUT "${bindings_src}" - COMMAND "$" "--${bindings_type}" ${include_paths} "${LIBWEB_INPUT_FOLDER}/${class}.idl" "${LIBWEB_INPUT_FOLDER}" > "${bindings_src}.tmp" + COMMAND "$" "--${bindings_type}" ${include_paths} "${LIBWEB_INPUT_FOLDER}/${class}.idl" "${LIBWEB_INPUT_FOLDER}" > "${bindings_src}.tmp" COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${bindings_src}.tmp" "${bindings_src}" COMMAND "${CMAKE_COMMAND}" -E remove "${bindings_src}.tmp" VERBATIM - DEPENDS Lagom::WrapperGenerator + DEPENDS Lagom::BindingsGenerator MAIN_DEPENDENCY ${LIBWEB_INPUT_FOLDER}/${class}.idl ) endforeach() diff --git a/Meta/Lagom/CMakeLists.txt b/Meta/Lagom/CMakeLists.txt index 09559b85f95..0fa1b4e62f7 100644 --- a/Meta/Lagom/CMakeLists.txt +++ b/Meta/Lagom/CMakeLists.txt @@ -292,7 +292,7 @@ lagom_lib(TimeZone timezone target_compile_definitions(LibTimeZone PRIVATE ENABLE_TIME_ZONE_DATA=$) # LibIDL -# This is used by the WrapperGenerator so needs to always be built. +# This is used by the BindingsGenerator so needs to always be built. file(GLOB LIBIDL_SOURCES CONFIGURE_DEPENDS "../../Userland/Libraries/LibIDL/*.cpp") lagom_lib(IDL idl SOURCES ${LIBIDL_SOURCES} @@ -557,7 +557,7 @@ if (BUILD_LAGOM) SOURCES ${LIBWEB_SOURCES} ${LIBWEB_SUBDIR_SOURCES} ${LIBWEB_SUBSUBDIR_SOURCES} ${LIBWEB_SUBSUBSUBDIR_SOURCES} ${LIBWEB_GENERATED_SOURCES} LIBS LibMarkdown LibGemini LibGfx LibGL LibIDL LibJS LibTextCodec LibWasm LibXML ) - generate_js_wrappers(LibWeb) + generate_js_bindings(LibWeb) endif() # WebSocket diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/CMakeLists.txt b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/CMakeLists.txt new file mode 100644 index 00000000000..bfc8a4da0a4 --- /dev/null +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/CMakeLists.txt @@ -0,0 +1,7 @@ +set(SOURCES + IDLGenerators.cpp + main.cpp +) + +lagom_tool(BindingsGenerator LIBS LibIDL) +target_compile_options(BindingsGenerator PUBLIC -g) diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp similarity index 100% rename from Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLGenerators.cpp rename to Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/IDLGenerators.cpp diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/main.cpp b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/main.cpp similarity index 98% rename from Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/main.cpp rename to Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/main.cpp index c43d3580a5c..72546a958fb 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/main.cpp +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/BindingsGenerator/main.cpp @@ -1,6 +1,6 @@ /* * Copyright (c) 2020-2021, Andreas Kling - * Copyright (c) 2021, Linus Groh + * Copyright (c) 2021-2022, Linus Groh * Copyright (c) 2021, Luke Wilde * Copyright (c) 2022, Ali Mohammad Pur * @@ -107,7 +107,7 @@ int main(int argc, char** argv) interface.fully_qualified_name = interface.name; } - if constexpr (WRAPPER_GENERATOR_DEBUG) { + if constexpr (BINDINGS_GENERATOR_DEBUG) { dbgln("Attributes:"); for (auto& attribute : interface.attributes) { dbgln(" {}{}{} {}", diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/CMakeLists.txt b/Meta/Lagom/Tools/CodeGenerators/LibWeb/CMakeLists.txt index 49e512ae26a..0b9d1f95f68 100644 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/CMakeLists.txt +++ b/Meta/Lagom/Tools/CodeGenerators/LibWeb/CMakeLists.txt @@ -6,4 +6,4 @@ lagom_tool(GenerateCSSPropertyID SOURCES GenerateCSSPropertyID.cpp LIB lagom_tool(GenerateCSSTransformFunctions SOURCES GenerateCSSTransformFunctions.cpp LIBS LibMain) lagom_tool(GenerateCSSValueID SOURCES GenerateCSSValueID.cpp LIBS LibMain) -add_subdirectory(WrapperGenerator) +add_subdirectory(BindingsGenerator) diff --git a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/CMakeLists.txt b/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/CMakeLists.txt deleted file mode 100644 index 2f06043b2fb..00000000000 --- a/Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -set(SOURCES - IDLGenerators.cpp - main.cpp -) - -lagom_tool(WrapperGenerator LIBS LibIDL) -target_compile_options(WrapperGenerator PUBLIC -g) diff --git a/Userland/Libraries/LibWeb/CMakeLists.txt b/Userland/Libraries/LibWeb/CMakeLists.txt index 7312fe898fe..47983f1cded 100644 --- a/Userland/Libraries/LibWeb/CMakeLists.txt +++ b/Userland/Libraries/LibWeb/CMakeLists.txt @@ -436,7 +436,7 @@ serenity_lib(LibWeb web) target_link_libraries(LibWeb LibCore LibJS LibMarkdown LibGemini LibGL LibGUI LibGfx LibSoftGPU LibTextCodec LibWasm LibXML LibIDL) link_with_locale_data(LibWeb) -generate_js_wrappers(LibWeb) +generate_js_bindings(LibWeb) -# Note: If you're looking for the calls to "libweb_js_wrapper()", +# Note: If you're looking for the calls to "libweb_js_bindings()", # they have been moved to "idl_files.cmake" diff --git a/Userland/Libraries/LibWeb/Fetch/Headers.cpp b/Userland/Libraries/LibWeb/Fetch/Headers.cpp index a254be9b458..4195c98aa25 100644 --- a/Userland/Libraries/LibWeb/Fetch/Headers.cpp +++ b/Userland/Libraries/LibWeb/Fetch/Headers.cpp @@ -98,7 +98,7 @@ DOM::ExceptionOr Headers::get(String const& name_string) // 2. Return the result of getting name from this’s header list. auto byte_buffer = TRY_OR_RETURN_OOM(global_object(), m_header_list.get(name)); - // FIXME: Teach WrapperGenerator about Optional + // FIXME: Teach BindingsGenerator about Optional return byte_buffer.has_value() ? String { byte_buffer->span() } : String {}; } diff --git a/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js b/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js index 89c2eaf8df0..82d5d317e51 100644 --- a/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js +++ b/Userland/Libraries/LibWeb/Tests/HTML/HTMLTableElement.js @@ -63,7 +63,7 @@ describe("HTMLTableElement", () => { let table = page.document.createElement("table"); expect(table).not.toBeNull(); - // We hardcode the default value in a few places, due to the WrapperGenerator's bug with default values + // We hardcode the default value in a few places, due to the BindingsGenerator's bug with default values const defaultValue = -1; expect(table.rows.length).toBe(0); @@ -96,7 +96,7 @@ describe("HTMLTableElement", () => { let table = page.document.createElement("table"); expect(table).not.toBeNull(); - // We hardcode the default value in a few places, due to the WrapperGenerator's bug with default values + // We hardcode the default value in a few places, due to the BindingsGenerator's bug with default values const defaultValue = -1; // deleteRow with an index > number of rows will throw diff --git a/Userland/Libraries/LibWeb/idl_files.cmake b/Userland/Libraries/LibWeb/idl_files.cmake index b0ef6c9f050..cf3a00541f6 100644 --- a/Userland/Libraries/LibWeb/idl_files.cmake +++ b/Userland/Libraries/LibWeb/idl_files.cmake @@ -1,190 +1,190 @@ # This file is included from "Meta/CMake/libweb_data.cmake" # It is defined here so that there is no need to go to the Meta directory when adding new idl files -libweb_js_wrapper(Crypto/Crypto) -libweb_js_wrapper(Crypto/SubtleCrypto) -libweb_js_wrapper(CSS/CSSConditionRule) -libweb_js_wrapper(CSS/CSSFontFaceRule) -libweb_js_wrapper(CSS/CSSGroupingRule) -libweb_js_wrapper(CSS/CSSImportRule) -libweb_js_wrapper(CSS/CSSMediaRule) -libweb_js_wrapper(CSS/CSSRule) -libweb_js_wrapper(CSS/CSSRuleList) -libweb_js_wrapper(CSS/CSSStyleDeclaration) -libweb_js_wrapper(CSS/CSSStyleRule) -libweb_js_wrapper(CSS/CSSStyleSheet) -libweb_js_wrapper(CSS/CSSSupportsRule) -libweb_js_wrapper(CSS/MediaList) -libweb_js_wrapper(CSS/MediaQueryList) -libweb_js_wrapper(CSS/MediaQueryListEvent) -libweb_js_wrapper(CSS/Screen) -libweb_js_wrapper(CSS/StyleSheet) -libweb_js_wrapper(CSS/StyleSheetList) -libweb_js_wrapper(DOM/AbstractRange) -libweb_js_wrapper(DOM/Attr) -libweb_js_wrapper(DOM/AbortController) -libweb_js_wrapper(DOM/AbortSignal) -libweb_js_wrapper(DOM/CDATASection) -libweb_js_wrapper(DOM/CharacterData) -libweb_js_wrapper(DOM/Comment) -libweb_js_wrapper(DOM/CustomEvent) -libweb_js_wrapper(DOM/Document) -libweb_js_wrapper(DOM/DocumentFragment) -libweb_js_wrapper(DOM/DocumentType) -libweb_js_wrapper(DOM/DOMException) -libweb_js_wrapper(DOM/DOMImplementation) -libweb_js_wrapper(DOM/DOMTokenList) -libweb_js_wrapper(DOM/Element) -libweb_js_wrapper(DOM/Event) -libweb_js_wrapper(DOM/EventTarget) -libweb_js_wrapper(DOM/HTMLCollection) -libweb_js_wrapper(DOM/MutationRecord) -libweb_js_wrapper(DOM/MutationObserver) -libweb_js_wrapper(DOM/NamedNodeMap) -libweb_js_wrapper(DOM/Node) -libweb_js_wrapper(DOM/NodeIterator) -libweb_js_wrapper(DOM/NodeList) -libweb_js_wrapper(DOM/ProcessingInstruction) -libweb_js_wrapper(DOM/Range) -libweb_js_wrapper(DOM/ShadowRoot) -libweb_js_wrapper(DOM/StaticRange) -libweb_js_wrapper(DOM/Text) -libweb_js_wrapper(DOM/TreeWalker) -libweb_js_wrapper(DOMParsing/XMLSerializer) -libweb_js_wrapper(Encoding/TextDecoder) -libweb_js_wrapper(Encoding/TextEncoder) -libweb_js_wrapper(Fetch/Headers ITERABLE) -libweb_js_wrapper(FileAPI/Blob) -libweb_js_wrapper(FileAPI/File) -libweb_js_wrapper(Geometry/DOMPoint) -libweb_js_wrapper(Geometry/DOMPointReadOnly) -libweb_js_wrapper(Geometry/DOMRect) -libweb_js_wrapper(Geometry/DOMRectList) -libweb_js_wrapper(Geometry/DOMRectReadOnly) -libweb_js_wrapper(HTML/CanvasGradient) -libweb_js_wrapper(HTML/CanvasRenderingContext2D) -libweb_js_wrapper(HTML/CloseEvent) -libweb_js_wrapper(HTML/DOMParser) -libweb_js_wrapper(HTML/DOMStringMap) -libweb_js_wrapper(HTML/ErrorEvent) -libweb_js_wrapper(HTML/History) -libweb_js_wrapper(HTML/HTMLAnchorElement) -libweb_js_wrapper(HTML/HTMLAreaElement) -libweb_js_wrapper(HTML/HTMLAudioElement) -libweb_js_wrapper(HTML/HTMLBaseElement) -libweb_js_wrapper(HTML/HTMLBodyElement) -libweb_js_wrapper(HTML/HTMLBRElement) -libweb_js_wrapper(HTML/HTMLButtonElement) -libweb_js_wrapper(HTML/HTMLCanvasElement) -libweb_js_wrapper(HTML/HTMLDataElement) -libweb_js_wrapper(HTML/HTMLDataListElement) -libweb_js_wrapper(HTML/HTMLDetailsElement) -libweb_js_wrapper(HTML/HTMLDialogElement) -libweb_js_wrapper(HTML/HTMLDirectoryElement) -libweb_js_wrapper(HTML/HTMLDivElement) -libweb_js_wrapper(HTML/HTMLDListElement) -libweb_js_wrapper(HTML/HTMLElement) -libweb_js_wrapper(HTML/HTMLEmbedElement) -libweb_js_wrapper(HTML/HTMLFieldSetElement) -libweb_js_wrapper(HTML/HTMLFontElement) -libweb_js_wrapper(HTML/HTMLFormElement) -libweb_js_wrapper(HTML/HTMLFrameElement) -libweb_js_wrapper(HTML/HTMLFrameSetElement) -libweb_js_wrapper(HTML/HTMLHeadElement) -libweb_js_wrapper(HTML/HTMLHeadingElement) -libweb_js_wrapper(HTML/HTMLHRElement) -libweb_js_wrapper(HTML/HTMLHtmlElement) -libweb_js_wrapper(HTML/HTMLIFrameElement) -libweb_js_wrapper(HTML/HTMLImageElement) -libweb_js_wrapper(HTML/HTMLInputElement) -libweb_js_wrapper(HTML/HTMLLabelElement) -libweb_js_wrapper(HTML/HTMLLegendElement) -libweb_js_wrapper(HTML/HTMLLIElement) -libweb_js_wrapper(HTML/HTMLLinkElement) -libweb_js_wrapper(HTML/HTMLMapElement) -libweb_js_wrapper(HTML/HTMLMarqueeElement) -libweb_js_wrapper(HTML/HTMLMediaElement) -libweb_js_wrapper(HTML/HTMLMenuElement) -libweb_js_wrapper(HTML/HTMLMetaElement) -libweb_js_wrapper(HTML/HTMLMeterElement) -libweb_js_wrapper(HTML/HTMLModElement) -libweb_js_wrapper(HTML/HTMLObjectElement) -libweb_js_wrapper(HTML/HTMLOListElement) -libweb_js_wrapper(HTML/HTMLOptGroupElement) -libweb_js_wrapper(HTML/HTMLOptionElement) -libweb_js_wrapper(HTML/HTMLOptionsCollection) -libweb_js_wrapper(HTML/HTMLOutputElement) -libweb_js_wrapper(HTML/HTMLParagraphElement) -libweb_js_wrapper(HTML/HTMLParamElement) -libweb_js_wrapper(HTML/HTMLPictureElement) -libweb_js_wrapper(HTML/HTMLPreElement) -libweb_js_wrapper(HTML/HTMLProgressElement) -libweb_js_wrapper(HTML/HTMLQuoteElement) -libweb_js_wrapper(HTML/HTMLScriptElement) -libweb_js_wrapper(HTML/HTMLSelectElement) -libweb_js_wrapper(HTML/HTMLSlotElement) -libweb_js_wrapper(HTML/HTMLSourceElement) -libweb_js_wrapper(HTML/HTMLSpanElement) -libweb_js_wrapper(HTML/HTMLStyleElement) -libweb_js_wrapper(HTML/HTMLTableCaptionElement) -libweb_js_wrapper(HTML/HTMLTableCellElement) -libweb_js_wrapper(HTML/HTMLTableColElement) -libweb_js_wrapper(HTML/HTMLTableElement) -libweb_js_wrapper(HTML/HTMLTableRowElement) -libweb_js_wrapper(HTML/HTMLTableSectionElement) -libweb_js_wrapper(HTML/HTMLTemplateElement) -libweb_js_wrapper(HTML/HTMLTextAreaElement) -libweb_js_wrapper(HTML/HTMLTimeElement) -libweb_js_wrapper(HTML/HTMLTitleElement) -libweb_js_wrapper(HTML/HTMLTrackElement) -libweb_js_wrapper(HTML/HTMLUListElement) -libweb_js_wrapper(HTML/HTMLUnknownElement) -libweb_js_wrapper(HTML/HTMLVideoElement) -libweb_js_wrapper(HTML/ImageData) -libweb_js_wrapper(HTML/MessageChannel) -libweb_js_wrapper(HTML/MessageEvent) -libweb_js_wrapper(HTML/MessagePort) -libweb_js_wrapper(HTML/PageTransitionEvent) -libweb_js_wrapper(HTML/Path2D) -libweb_js_wrapper(HTML/PromiseRejectionEvent) -libweb_js_wrapper(HTML/Storage) -libweb_js_wrapper(HTML/SubmitEvent) -libweb_js_wrapper(HTML/TextMetrics) -libweb_js_wrapper(HTML/Worker) -libweb_js_wrapper(HTML/WorkerGlobalScope) -libweb_js_wrapper(HTML/WorkerLocation) -libweb_js_wrapper(HTML/WorkerNavigator) -libweb_js_wrapper(HighResolutionTime/Performance) -libweb_js_wrapper(IntersectionObserver/IntersectionObserver) -libweb_js_wrapper(NavigationTiming/PerformanceTiming) -libweb_js_wrapper(RequestIdleCallback/IdleDeadline) -libweb_js_wrapper(ResizeObserver/ResizeObserver) -libweb_js_wrapper(SVG/SVGAnimatedLength) -libweb_js_wrapper(SVG/SVGClipPathElement) -libweb_js_wrapper(SVG/SVGDefsElement) -libweb_js_wrapper(SVG/SVGElement) -libweb_js_wrapper(SVG/SVGGeometryElement) -libweb_js_wrapper(SVG/SVGGraphicsElement) -libweb_js_wrapper(SVG/SVGCircleElement) -libweb_js_wrapper(SVG/SVGEllipseElement) -libweb_js_wrapper(SVG/SVGLength) -libweb_js_wrapper(SVG/SVGLineElement) -libweb_js_wrapper(SVG/SVGPathElement) -libweb_js_wrapper(SVG/SVGPolygonElement) -libweb_js_wrapper(SVG/SVGPolylineElement) -libweb_js_wrapper(SVG/SVGRectElement) -libweb_js_wrapper(SVG/SVGSVGElement) -libweb_js_wrapper(SVG/SVGTextContentElement) -libweb_js_wrapper(Selection/Selection) -libweb_js_wrapper(UIEvents/FocusEvent) -libweb_js_wrapper(UIEvents/KeyboardEvent) -libweb_js_wrapper(UIEvents/MouseEvent) -libweb_js_wrapper(UIEvents/UIEvent) -libweb_js_wrapper(URL/URL) -libweb_js_wrapper(URL/URLSearchParams ITERABLE) -libweb_js_wrapper(WebGL/WebGLContextEvent) -libweb_js_wrapper(WebGL/WebGLRenderingContext) -libweb_js_wrapper(WebSockets/WebSocket) -libweb_js_wrapper(XHR/ProgressEvent) -libweb_js_wrapper(XHR/XMLHttpRequest) -libweb_js_wrapper(XHR/XMLHttpRequestEventTarget) +libweb_js_bindings(Crypto/Crypto) +libweb_js_bindings(Crypto/SubtleCrypto) +libweb_js_bindings(CSS/CSSConditionRule) +libweb_js_bindings(CSS/CSSFontFaceRule) +libweb_js_bindings(CSS/CSSGroupingRule) +libweb_js_bindings(CSS/CSSImportRule) +libweb_js_bindings(CSS/CSSMediaRule) +libweb_js_bindings(CSS/CSSRule) +libweb_js_bindings(CSS/CSSRuleList) +libweb_js_bindings(CSS/CSSStyleDeclaration) +libweb_js_bindings(CSS/CSSStyleRule) +libweb_js_bindings(CSS/CSSStyleSheet) +libweb_js_bindings(CSS/CSSSupportsRule) +libweb_js_bindings(CSS/MediaList) +libweb_js_bindings(CSS/MediaQueryList) +libweb_js_bindings(CSS/MediaQueryListEvent) +libweb_js_bindings(CSS/Screen) +libweb_js_bindings(CSS/StyleSheet) +libweb_js_bindings(CSS/StyleSheetList) +libweb_js_bindings(DOM/AbstractRange) +libweb_js_bindings(DOM/Attr) +libweb_js_bindings(DOM/AbortController) +libweb_js_bindings(DOM/AbortSignal) +libweb_js_bindings(DOM/CDATASection) +libweb_js_bindings(DOM/CharacterData) +libweb_js_bindings(DOM/Comment) +libweb_js_bindings(DOM/CustomEvent) +libweb_js_bindings(DOM/Document) +libweb_js_bindings(DOM/DocumentFragment) +libweb_js_bindings(DOM/DocumentType) +libweb_js_bindings(DOM/DOMException) +libweb_js_bindings(DOM/DOMImplementation) +libweb_js_bindings(DOM/DOMTokenList) +libweb_js_bindings(DOM/Element) +libweb_js_bindings(DOM/Event) +libweb_js_bindings(DOM/EventTarget) +libweb_js_bindings(DOM/HTMLCollection) +libweb_js_bindings(DOM/MutationRecord) +libweb_js_bindings(DOM/MutationObserver) +libweb_js_bindings(DOM/NamedNodeMap) +libweb_js_bindings(DOM/Node) +libweb_js_bindings(DOM/NodeIterator) +libweb_js_bindings(DOM/NodeList) +libweb_js_bindings(DOM/ProcessingInstruction) +libweb_js_bindings(DOM/Range) +libweb_js_bindings(DOM/ShadowRoot) +libweb_js_bindings(DOM/StaticRange) +libweb_js_bindings(DOM/Text) +libweb_js_bindings(DOM/TreeWalker) +libweb_js_bindings(DOMParsing/XMLSerializer) +libweb_js_bindings(Encoding/TextDecoder) +libweb_js_bindings(Encoding/TextEncoder) +libweb_js_bindings(Fetch/Headers ITERABLE) +libweb_js_bindings(FileAPI/Blob) +libweb_js_bindings(FileAPI/File) +libweb_js_bindings(Geometry/DOMPoint) +libweb_js_bindings(Geometry/DOMPointReadOnly) +libweb_js_bindings(Geometry/DOMRect) +libweb_js_bindings(Geometry/DOMRectList) +libweb_js_bindings(Geometry/DOMRectReadOnly) +libweb_js_bindings(HTML/CanvasGradient) +libweb_js_bindings(HTML/CanvasRenderingContext2D) +libweb_js_bindings(HTML/CloseEvent) +libweb_js_bindings(HTML/DOMParser) +libweb_js_bindings(HTML/DOMStringMap) +libweb_js_bindings(HTML/ErrorEvent) +libweb_js_bindings(HTML/History) +libweb_js_bindings(HTML/HTMLAnchorElement) +libweb_js_bindings(HTML/HTMLAreaElement) +libweb_js_bindings(HTML/HTMLAudioElement) +libweb_js_bindings(HTML/HTMLBaseElement) +libweb_js_bindings(HTML/HTMLBodyElement) +libweb_js_bindings(HTML/HTMLBRElement) +libweb_js_bindings(HTML/HTMLButtonElement) +libweb_js_bindings(HTML/HTMLCanvasElement) +libweb_js_bindings(HTML/HTMLDataElement) +libweb_js_bindings(HTML/HTMLDataListElement) +libweb_js_bindings(HTML/HTMLDetailsElement) +libweb_js_bindings(HTML/HTMLDialogElement) +libweb_js_bindings(HTML/HTMLDirectoryElement) +libweb_js_bindings(HTML/HTMLDivElement) +libweb_js_bindings(HTML/HTMLDListElement) +libweb_js_bindings(HTML/HTMLElement) +libweb_js_bindings(HTML/HTMLEmbedElement) +libweb_js_bindings(HTML/HTMLFieldSetElement) +libweb_js_bindings(HTML/HTMLFontElement) +libweb_js_bindings(HTML/HTMLFormElement) +libweb_js_bindings(HTML/HTMLFrameElement) +libweb_js_bindings(HTML/HTMLFrameSetElement) +libweb_js_bindings(HTML/HTMLHeadElement) +libweb_js_bindings(HTML/HTMLHeadingElement) +libweb_js_bindings(HTML/HTMLHRElement) +libweb_js_bindings(HTML/HTMLHtmlElement) +libweb_js_bindings(HTML/HTMLIFrameElement) +libweb_js_bindings(HTML/HTMLImageElement) +libweb_js_bindings(HTML/HTMLInputElement) +libweb_js_bindings(HTML/HTMLLabelElement) +libweb_js_bindings(HTML/HTMLLegendElement) +libweb_js_bindings(HTML/HTMLLIElement) +libweb_js_bindings(HTML/HTMLLinkElement) +libweb_js_bindings(HTML/HTMLMapElement) +libweb_js_bindings(HTML/HTMLMarqueeElement) +libweb_js_bindings(HTML/HTMLMediaElement) +libweb_js_bindings(HTML/HTMLMenuElement) +libweb_js_bindings(HTML/HTMLMetaElement) +libweb_js_bindings(HTML/HTMLMeterElement) +libweb_js_bindings(HTML/HTMLModElement) +libweb_js_bindings(HTML/HTMLObjectElement) +libweb_js_bindings(HTML/HTMLOListElement) +libweb_js_bindings(HTML/HTMLOptGroupElement) +libweb_js_bindings(HTML/HTMLOptionElement) +libweb_js_bindings(HTML/HTMLOptionsCollection) +libweb_js_bindings(HTML/HTMLOutputElement) +libweb_js_bindings(HTML/HTMLParagraphElement) +libweb_js_bindings(HTML/HTMLParamElement) +libweb_js_bindings(HTML/HTMLPictureElement) +libweb_js_bindings(HTML/HTMLPreElement) +libweb_js_bindings(HTML/HTMLProgressElement) +libweb_js_bindings(HTML/HTMLQuoteElement) +libweb_js_bindings(HTML/HTMLScriptElement) +libweb_js_bindings(HTML/HTMLSelectElement) +libweb_js_bindings(HTML/HTMLSlotElement) +libweb_js_bindings(HTML/HTMLSourceElement) +libweb_js_bindings(HTML/HTMLSpanElement) +libweb_js_bindings(HTML/HTMLStyleElement) +libweb_js_bindings(HTML/HTMLTableCaptionElement) +libweb_js_bindings(HTML/HTMLTableCellElement) +libweb_js_bindings(HTML/HTMLTableColElement) +libweb_js_bindings(HTML/HTMLTableElement) +libweb_js_bindings(HTML/HTMLTableRowElement) +libweb_js_bindings(HTML/HTMLTableSectionElement) +libweb_js_bindings(HTML/HTMLTemplateElement) +libweb_js_bindings(HTML/HTMLTextAreaElement) +libweb_js_bindings(HTML/HTMLTimeElement) +libweb_js_bindings(HTML/HTMLTitleElement) +libweb_js_bindings(HTML/HTMLTrackElement) +libweb_js_bindings(HTML/HTMLUListElement) +libweb_js_bindings(HTML/HTMLUnknownElement) +libweb_js_bindings(HTML/HTMLVideoElement) +libweb_js_bindings(HTML/ImageData) +libweb_js_bindings(HTML/MessageChannel) +libweb_js_bindings(HTML/MessageEvent) +libweb_js_bindings(HTML/MessagePort) +libweb_js_bindings(HTML/PageTransitionEvent) +libweb_js_bindings(HTML/Path2D) +libweb_js_bindings(HTML/PromiseRejectionEvent) +libweb_js_bindings(HTML/Storage) +libweb_js_bindings(HTML/SubmitEvent) +libweb_js_bindings(HTML/TextMetrics) +libweb_js_bindings(HTML/Worker) +libweb_js_bindings(HTML/WorkerGlobalScope) +libweb_js_bindings(HTML/WorkerLocation) +libweb_js_bindings(HTML/WorkerNavigator) +libweb_js_bindings(HighResolutionTime/Performance) +libweb_js_bindings(IntersectionObserver/IntersectionObserver) +libweb_js_bindings(NavigationTiming/PerformanceTiming) +libweb_js_bindings(RequestIdleCallback/IdleDeadline) +libweb_js_bindings(ResizeObserver/ResizeObserver) +libweb_js_bindings(SVG/SVGAnimatedLength) +libweb_js_bindings(SVG/SVGClipPathElement) +libweb_js_bindings(SVG/SVGDefsElement) +libweb_js_bindings(SVG/SVGElement) +libweb_js_bindings(SVG/SVGGeometryElement) +libweb_js_bindings(SVG/SVGGraphicsElement) +libweb_js_bindings(SVG/SVGCircleElement) +libweb_js_bindings(SVG/SVGEllipseElement) +libweb_js_bindings(SVG/SVGLength) +libweb_js_bindings(SVG/SVGLineElement) +libweb_js_bindings(SVG/SVGPathElement) +libweb_js_bindings(SVG/SVGPolygonElement) +libweb_js_bindings(SVG/SVGPolylineElement) +libweb_js_bindings(SVG/SVGRectElement) +libweb_js_bindings(SVG/SVGSVGElement) +libweb_js_bindings(SVG/SVGTextContentElement) +libweb_js_bindings(Selection/Selection) +libweb_js_bindings(UIEvents/FocusEvent) +libweb_js_bindings(UIEvents/KeyboardEvent) +libweb_js_bindings(UIEvents/MouseEvent) +libweb_js_bindings(UIEvents/UIEvent) +libweb_js_bindings(URL/URL) +libweb_js_bindings(URL/URLSearchParams ITERABLE) +libweb_js_bindings(WebGL/WebGLContextEvent) +libweb_js_bindings(WebGL/WebGLRenderingContext) +libweb_js_bindings(WebSockets/WebSocket) +libweb_js_bindings(XHR/ProgressEvent) +libweb_js_bindings(XHR/XMLHttpRequest) +libweb_js_bindings(XHR/XMLHttpRequestEventTarget)