mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:12:43 +00:00 
			
		
		
		
	LibWeb: Add support for NodeList
This introduces 3 classes: NodeList, StaticNodeList and LiveNodeList. NodeList is the base of the static and live versions. Static is a snapshot whereas live acts on the underlying data and thus inhibits the same issues we have currently with HTMLCollection. They were split into separate classes to not have them weirdly mis-mashed together. The create functions for static and live both return a NNRP to the base class. This is to prevent having to do awkward casting at creation and/or return, as the bindings expect to see the base NodeList only.
This commit is contained in:
		
							parent
							
								
									bfd089fbd1
								
							
						
					
					
						commit
						8d6db36cbb
					
				
					 10 changed files with 221 additions and 1 deletions
				
			
		|  | @ -1226,7 +1226,7 @@ static void generate_wrap_statement(SourceGenerator& generator, String const& va | |||
| )~~~"); | ||||
|     } else if (type.name == "ArrayFromVector") { | ||||
|         // FIXME: Remove this fake type hack once it's no longer needed.
 | ||||
|         //        Basically once we have NodeList we can throw this out.
 | ||||
|         //        Basically once we have sequence<T> we can throw this out.
 | ||||
|         scoped_generator.append(R"~~~( | ||||
|     auto* new_array = JS::Array::create(global_object, 0); | ||||
|     for (auto& element : @value@) | ||||
|  | @ -2736,6 +2736,7 @@ void generate_prototype_implementation(IDL::Interface const& interface) | |||
| #include <LibWeb/Bindings/ImageDataWrapper.h> | ||||
| #include <LibWeb/Bindings/LocationObject.h> | ||||
| #include <LibWeb/Bindings/MessagePortWrapper.h> | ||||
| #include <LibWeb/Bindings/NodeListWrapper.h> | ||||
| #include <LibWeb/Bindings/NodeWrapperFactory.h> | ||||
| #include <LibWeb/Bindings/PerformanceTimingWrapper.h> | ||||
| #include <LibWeb/Bindings/RangeWrapper.h> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Luke Wilde
						Luke Wilde