1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 10:48:11 +00:00
serenity/Userland/Libraries/LibWeb/DOM
Andreas Kling bfd354492e LibWeb: Put most LibWeb GC objects in type-specific heap blocks
With this change, we now have ~1200 CellAllocators across both LibJS and
LibWeb in a normal WebContent instance.

This gives us a minimum heap size of 4.7 MiB in the scenario where we
only have one cell allocated per type. Of course, in practice there will
be many more of each type, so the effective overhead is quite a bit
smaller than that in practice.

I left a few types unconverted to this mechanism because I got tired of
doing this. :^)
2023-11-19 22:00:48 +01:00
..
AbortController.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AbortController.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AbortController.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
AbortSignal.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AbortSignal.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AbortSignal.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
AbstractRange.cpp LibWeb/LibJS: Avoid GC visit of raw pointers where possible 2023-11-19 08:05:45 +00:00
AbstractRange.h LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
AbstractRange.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
AccessibilityTreeNode.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
AccessibilityTreeNode.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Attr.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Attr.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Attr.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
CDATASection.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CDATASection.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CDATASection.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
CharacterData.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CharacterData.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CharacterData.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
ChildNode.h LibWeb: Remove DeprecatedString support from {Child,Parent}Node 2023-10-06 08:25:40 +02:00
ChildNode.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
Comment.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Comment.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Comment.idl LibWeb: Port Comment interface from DeprecatedString to String 2023-09-06 11:44:45 -04:00
CustomEvent.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CustomEvent.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
CustomEvent.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
Document.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Document.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Document.idl IDL: Fix syntax errors 2023-11-11 08:51:51 +01:00
DocumentFragment.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentFragment.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentFragment.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +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: Reject improperly encoded XML documents as not well-formed 2023-11-17 16:02:36 +01:00
DocumentLoading.h LibWeb: Consider content-type charset when determining XML encoding 2023-11-17 16:02:36 +01:00
DocumentObserver.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentObserver.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentType.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentType.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DocumentType.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
DOMEventListener.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMEventListener.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMImplementation.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMImplementation.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMImplementation.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
DOMTokenList.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMTokenList.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
DOMTokenList.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
Element.cpp LibWeb: Port Element::attribute_changed from DeprecatedString to String 2023-11-19 08:16:34 +00:00
Element.h LibWeb: Port Element::attribute_changed from DeprecatedString to String 2023-11-19 08:16:34 +00:00
Element.idl LibWeb: Port Element interface from DeprecatedString 2023-10-06 08:25:40 +02:00
ElementFactory.cpp LibWeb: Make Web::Namespace::Foo strings be FlyString 2023-11-04 21:28:30 +01:00
ElementFactory.h LibWeb: Use FlyString for create_element() namespace strings 2023-11-04 21:28:30 +01:00
Event.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Event.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Event.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
EventDispatcher.cpp LibWeb: Ensure DOM events on slottables are properly propagated 2023-09-13 13:45:47 +02:00
EventDispatcher.h LibWeb+LibJS: Make the EventTarget hierarchy (incl. DOM) GC-allocated 2022-09-06 00:27:09 +02:00
EventHandler.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
EventTarget.cpp LibWeb/LibJS: Avoid GC visit of raw pointers where possible 2023-11-19 08:05:45 +00:00
EventTarget.h LibJS+LibWeb: Devirtualize may_interfere_with_indexed_property_access() 2023-11-10 08:22:44 +01:00
EventTarget.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
HTMLCollection.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
HTMLCollection.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
HTMLCollection.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
HTMLFormControlsCollection.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
HTMLFormControlsCollection.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
HTMLFormControlsCollection.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
IDLEventListener.cpp LibWeb/LibJS: Avoid GC visit of raw pointers where possible 2023-11-19 08:05:45 +00:00
IDLEventListener.h LibJS: Make Heap::allocate<T>() infallible 2023-08-13 15:38:42 +02:00
InnerHTML.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
LiveNodeList.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
LiveNodeList.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationObserver.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationObserver.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationObserver.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
MutationRecord.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationRecord.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
MutationRecord.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
MutationType.cpp AK: Make "foo"_fly_string infallible 2023-08-07 16:03:27 +02:00
MutationType.h AK: Make "foo"_fly_string infallible 2023-08-07 16:03:27 +02:00
NamedNodeMap.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NamedNodeMap.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NamedNodeMap.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
Node.cpp LibWeb: Port Element::attribute_changed from DeprecatedString to String 2023-11-19 08:16:34 +00:00
Node.h LibWeb: Port Element::attribute_changed from DeprecatedString to String 2023-11-19 08:16:34 +00:00
Node.idl LibWeb: Port Node interface from DeprecatedString to String 2023-09-17 20:29:18 +02:00
NodeFilter.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeFilter.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeFilter.idl IDL: Add missing spec links 2023-11-11 08:51:51 +01:00
NodeIterator.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeIterator.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
NodeIterator.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
NodeList.cpp LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
NodeList.h LibJS: Make Cell::initialize() return void 2023-08-08 07:39:11 +02:00
NodeList.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
NodeOperations.cpp LibWeb: Remove DeprecatedString support from {Child,Parent}Node 2023-10-06 08:25:40 +02:00
NodeOperations.h LibWeb: Remove DeprecatedString support from {Child,Parent}Node 2023-10-06 08:25:40 +02:00
NonDocumentTypeChildNode.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NonElementParentNode.h LibWeb: Use Element::id() in getElementById() 2023-11-02 17:09:34 +01:00
ParentNode.cpp LibWeb: Remove DeprecatedString impls of get_elements_by_tag_name{_ns} 2023-11-06 11:37:08 +01:00
ParentNode.h LibWeb: Remove DeprecatedString impls of get_elements_by_tag_name{_ns} 2023-11-06 11:37:08 +01:00
ParentNode.idl LibWeb: Resolve circular IDL imports 2022-07-30 13:20:47 +02:00
Position.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Position.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
ProcessingInstruction.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
ProcessingInstruction.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
ProcessingInstruction.idl LibWeb: Add Exposed attribute and IDL spec links where missing 2022-10-09 10:14:57 +02:00
QualifiedName.cpp LibWeb: Remove some now unused deprecated functions from QualifiedName 2023-11-06 11:37:08 +01:00
QualifiedName.h LibWeb: Remove some now unused deprecated functions from QualifiedName 2023-11-06 11:37:08 +01:00
RadioNodeList.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
RadioNodeList.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
RadioNodeList.idl LibWeb: Switch IDL from UseNewAKString to UseDeprecatedAKString 2023-09-02 19:23:41 +01:00
Range.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Range.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Range.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
ShadowRoot.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
ShadowRoot.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
ShadowRoot.idl LibWeb: Implement element slot-related attributes and settings 2023-09-13 13:45:47 +02:00
Slot.cpp LibWeb: Introduce the slot concept for HTML slot elements 2023-09-13 13:45:47 +02:00
Slot.h LibWeb: Introduce the slot concept for HTML slot elements 2023-09-13 13:45:47 +02:00
Slottable.cpp LibWeb: Skip assigning slottables for non-shadow roots 2023-11-03 20:50:34 +01:00
Slottable.h LibWeb: Implement manual slottable assignment 2023-09-13 13:45:47 +02:00
Slottable.idl IDL: Add missing #imports 2023-11-11 08:51:51 +01:00
StaticNodeList.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
StaticNodeList.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
StaticRange.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
StaticRange.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
StaticRange.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
StyleElementUtils.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
StyleElementUtils.h AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
Text.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Text.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
Text.idl LibWeb: Introduce the slottable concept for DOM elements and text nodes 2023-09-13 13:45:47 +02:00
TreeWalker.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
TreeWalker.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
TreeWalker.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00
XMLDocument.cpp LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
XMLDocument.h LibWeb: Put most LibWeb GC objects in type-specific heap blocks 2023-11-19 22:00:48 +01:00
XMLDocument.idl LibWeb: Add comments and missing items of various IDL files 2023-10-25 19:45:41 +02:00