2021-10-02 20:33:45 +01:00
/*
* Copyright ( c ) 2021 , Luke Wilde < lukew @ serenityos . org >
*
* SPDX - License - Identifier : BSD - 2 - Clause
*/
# include <LibWeb/DOM/StaticNodeList.h>
namespace Web : : DOM {
2022-08-28 13:42:07 +02:00
NonnullRefPtr < NodeList > StaticNodeList : : create ( Vector < JS : : Handle < Node > > static_nodes )
{
return adopt_ref ( * new StaticNodeList ( move ( static_nodes ) ) ) ;
}
StaticNodeList : : StaticNodeList ( Vector < JS : : Handle < Node > > static_nodes )
2021-10-02 20:33:45 +01:00
: m_static_nodes ( move ( static_nodes ) )
{
}
// https://dom.spec.whatwg.org/#dom-nodelist-length
u32 StaticNodeList : : length ( ) const
{
return m_static_nodes . size ( ) ;
}
// https://dom.spec.whatwg.org/#dom-nodelist-item
Node const * StaticNodeList : : item ( u32 index ) const
{
// The item(index) method must return the indexth node in the collection. If there is no indexth node in the collection, then the method must return null.
if ( index > = m_static_nodes . size ( ) )
return nullptr ;
2022-08-28 13:42:07 +02:00
return m_static_nodes [ index ] . ptr ( ) ;
2021-10-02 20:33:45 +01:00
}
// https://dom.spec.whatwg.org/#ref-for-dfn-supported-property-indices
bool StaticNodeList : : is_supported_property_index ( u32 index ) const
{
// The object’ s supported property indices are the numbers in the range zero to one less than the number of nodes represented by the collection.
// If there are no such elements, then there are no supported property indices.
return index < m_static_nodes . size ( ) ;
}
}