ladybird/Userland/Libraries/LibWeb/DOM
Andreas Kling df1bb0ff49 LibWeb: Make HTMLCollection faster when it only cares about children
Some of the live HTMLCollection only ever contain children of their root
node. When we know that's the case, we can avoid doing a full subtree
traversal of all descendants and only visit children.

This cuts the ECMA262 spec loading time by over 10 seconds. :^)
2023-05-23 14:38:45 +02:00
..
AbortController.cpp LibWeb: Make factory method of DOM::AbortSignal fallible 2023-02-18 00:52:47 +01:00
AbortController.h LibWeb: Make factory method of DOM::AbortController fallible 2023-02-18 00:52:47 +01:00
AbortController.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
AbortSignal.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
AbortSignal.h LibWeb: Make factory method of DOM::AbortSignal fallible 2023-02-18 00:52:47 +01:00
AbortSignal.idl LibWeb: Replace ad-hoc EventHandler type with callback function typedef 2022-03-31 01:10:47 +02:00
AbstractRange.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
AbstractRange.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
AbstractRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
AccessibilityTreeNode.cpp LibJS+LibWeb: Add missing visit calls in visit_edges implementations 2023-04-30 06:04:33 +02:00
AccessibilityTreeNode.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
Attr.cpp LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
Attr.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Attr.idl LibWeb: Rename Attribute to Attr 2022-09-18 02:08:01 +02:00
CDATASection.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CDATASection.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CDATASection.idl LibWeb: Add CDATASection 2022-06-27 22:53:04 +01:00
CharacterData.cpp LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
CharacterData.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
CharacterData.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
ChildNode.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
ChildNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Comment.cpp LibWeb: Set Comment's prototype 2023-04-14 12:30:43 +02:00
Comment.h LibWeb: Set Comment's prototype 2023-04-14 12:30:43 +02:00
Comment.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
CustomEvent.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
CustomEvent.h LibWeb: Port CustomEvent to new String 2023-04-07 22:41:01 +02:00
CustomEvent.idl LibWeb: Port CustomEvent to new String 2023-04-07 22:41:01 +02:00
Document.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
Document.h LibWeb: Make LayoutState use HashMap instead of potentially huge Vector 2023-05-23 09:24:08 +02:00
Document.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
DocumentFragment.cpp LibWeb: Make factory method of DOM::DocumentFragment fallible 2023-02-18 00:52:47 +01:00
DocumentFragment.h LibWeb: Make factory method of DOM::DocumentFragment fallible 2023-02-18 00:52:47 +01:00
DocumentFragment.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DocumentLoadEventDelayer.cpp LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentLoadEventDelayer.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
DocumentLoading.cpp LibWeb: Make processBodyError take an optional exception 2023-05-15 16:28:16 +02:00
DocumentLoading.h LibWeb: Implement "attempt to populate the history entry's document" 2023-05-03 09:39:49 +02:00
DocumentObserver.cpp LibWeb: Add an interface to be notified of Document state changes 2023-05-04 16:48:10 +02:00
DocumentObserver.h LibWeb: Add an interface to be notified of Document state changes 2023-05-04 16:48:10 +02:00
DocumentType.cpp LibWeb: Make factory method of DOM::DocumentType fallible 2023-02-18 00:52:47 +01:00
DocumentType.h LibWeb: Make factory method of DOM::DocumentType fallible 2023-02-18 00:52:47 +01:00
DocumentType.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DOMEventListener.cpp LibJS+LibWeb: Normalize calls to Base::visit_edges in GC objects 2023-04-30 06:04:33 +02:00
DOMEventListener.h LibJS+LibWeb: Normalize calls to Base::visit_edges in GC objects 2023-04-30 06:04:33 +02:00
DOMImplementation.cpp LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
DOMImplementation.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
DOMImplementation.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
DOMTokenList.cpp LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
DOMTokenList.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
DOMTokenList.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
Element.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
Element.h LibWeb: Avoid rebuilding layout tree unless CSS display property changes 2023-05-23 06:06:55 +02:00
Element.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
ElementFactory.cpp LibWeb: Add an initial implementation of SVG <radialGradient> 2023-05-04 16:50:01 +02:00
ElementFactory.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Event.cpp LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
Event.h LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
Event.idl LibWeb: Port {Mouse,UI,Wheel,}Event to new String 2023-04-07 22:41:01 +02:00
EventDispatcher.cpp LibWeb: Port DOMEventListener to new FlyString 2023-04-09 17:27:27 +02:00
EventDispatcher.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
EventHandler.idl LibWeb: Implement WindowEventHandlers 2022-06-29 21:21:50 +01:00
EventTarget.cpp LibWeb: Implement the EventTarget constructor 2023-05-04 16:12:40 +02:00
EventTarget.h LibWeb: Implement the EventTarget constructor 2023-05-04 16:12:40 +02:00
EventTarget.idl LibWeb: Implement the EventTarget constructor 2023-05-04 16:12:40 +02:00
HTMLCollection.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
HTMLCollection.h LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
HTMLCollection.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
IDLEventListener.cpp LibJS: Make intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
IDLEventListener.h LibWeb: Make factory methods of IDLEventListener and NodeFilter fallible 2023-02-22 09:55:33 +01:00
InnerHTML.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
LiveNodeList.cpp LibWeb: Make factory method of DOM::LiveNodeList fallible 2023-02-18 00:52:47 +01:00
LiveNodeList.h LibWeb: Make factory method of DOM::LiveNodeList fallible 2023-02-18 00:52:47 +01:00
MutationObserver.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
MutationObserver.h Everywhere: Remove NonnullRefPtr.h includes 2023-03-06 23:46:35 +01:00
MutationObserver.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationRecord.cpp LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationRecord.h LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationRecord.idl LibWeb: Introduce Mutation{Record,Observer} and observer microtasks 2022-07-11 22:35:08 +02:00
MutationType.cpp LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
MutationType.h LibWeb: Port MutationRecord types to FlyString 2023-03-18 19:50:45 +01:00
NamedNodeMap.cpp LibWeb: Implement Element.setAttributeNode{,NS}() 2023-03-10 14:56:29 +01:00
NamedNodeMap.h LibWeb: Implement Element.setAttributeNode{,NS}() 2023-03-10 14:56:29 +01:00
NamedNodeMap.idl LibWeb: Add NamedNodeMap::setNamedItemNS() method 2022-12-17 18:27:57 +01:00
Node.cpp LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
Node.h LibWeb: Don't create mutation record node lists if nobody is interested 2023-05-23 06:31:37 +02:00
Node.idl LibWeb: Add a bunch of missing CEReactions 2023-04-06 11:36:56 +02:00
NodeFilter.cpp LibJS: Make intrinsics getters return NonnullGCPtr 2023-04-13 14:29:42 +02:00
NodeFilter.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
NodeFilter.idl LibWeb: Expose NodeFilter on the Window object 2022-10-28 16:17:08 +01:00
NodeIterator.cpp LibWeb: Make factory method of DOM::NodeIterator fallible 2023-02-18 00:52:47 +01:00
NodeIterator.h LibWeb: Make factory method of DOM::NodeIterator fallible 2023-02-18 00:52:47 +01:00
NodeIterator.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
NodeList.cpp LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
NodeList.h LibWeb: Restore proper functionality of legacy platform objects 2023-02-28 12:36:14 +01:00
NodeList.idl LibWeb: Add imports to all IDL files that depend on others 2022-02-16 22:48:32 +03:30
NodeOperations.cpp LibJS+Everywhere: Propagate Cell::initialize errors from Heap::allocate 2023-01-29 00:02:45 +00:00
NodeOperations.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NonDocumentTypeChildNode.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonElementParentNode.h LibWeb: Fix a few const-ness issues 2023-03-06 13:05:43 +00:00
ParentNode.cpp LibWeb: Make HTMLCollection faster when it only cares about children 2023-05-23 14:38:45 +02:00
ParentNode.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
ParentNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Position.cpp LibWeb: Skip over grapheme clusters on left/right arrow key presses 2023-03-01 14:24:01 +00:00
Position.h LibWeb: Convert Web::DOM::Position::to_deprecated_string to String 2023-03-01 14:24:01 +00:00
ProcessingInstruction.cpp LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
ProcessingInstruction.h LibJS+Everywhere: Allow Cell::initialize overrides to throw OOM errors 2023-01-29 00:02:45 +00:00
ProcessingInstruction.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
QualifiedName.cpp LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
QualifiedName.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
Range.cpp LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
Range.h LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
Range.idl LibWeb: Implement Range.createContextualFragment() 2023-03-10 14:58:55 +01:00
ShadowRoot.cpp LibWeb: Allow to set a root mode value when constructing a ShadowRoot 2023-02-02 14:43:29 +01:00
ShadowRoot.h LibWeb: Introduce CustomElementRegistry and creating custom elements 2023-04-06 11:36:56 +02:00
ShadowRoot.idl LibWeb: Make ShadowRoot.mode return ShadowRootMode instead of String 2023-02-02 14:43:29 +01:00
StaticNodeList.cpp LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StaticNodeList.h LibJS+LibWeb: Wrap raw JS::Cell*/& fields in GCPtr/NonnullGCPtr 2023-03-15 08:48:49 +01:00
StaticRange.cpp LibWeb: Return JS::NonnullGCPtr<StaticRange> instead of StaticRange* 2023-02-18 00:52:47 +01:00
StaticRange.h LibWeb: Return JS::NonnullGCPtr<StaticRange> instead of StaticRange* 2023-02-18 00:52:47 +01:00
StaticRange.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
Text.cpp LibWeb: Make factory method of DOM::Text fallible 2023-02-18 00:52:47 +01:00
Text.h LibWeb: Make factory method of DOM::Text fallible 2023-02-18 00:52:47 +01:00
Text.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
TreeWalker.cpp LibWeb: Make factory method of DOM::TreeWalker fallible 2023-02-18 00:52:47 +01:00
TreeWalker.h LibWeb: Make factory method of DOM::TreeWalker fallible 2023-02-18 00:52:47 +01:00
TreeWalker.idl LibWeb: Remove the NoInstanceWrapper extended IDL attribute 2022-09-06 00:27:09 +02:00
XMLDocument.cpp LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00
XMLDocument.h LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00
XMLDocument.idl LibWeb: Add XMLDocument stub 2023-04-21 07:59:50 +02:00