LibWeb/IDB: Implement IDBObjectStore::indexNames

This commit is contained in:
stelar7 2025-04-01 18:38:55 +02:00
parent a5b1a51164
commit fe5bb7d77d
3 changed files with 14 additions and 1 deletions

View file

@ -153,4 +153,16 @@ WebIDL::ExceptionOr<GC::Ref<IDBIndex>> IDBObjectStore::create_index(String const
return IDBIndex::create(realm, index, *this);
}
// https://w3c.github.io/IndexedDB/#dom-idbobjectstore-indexnames
GC::Ref<HTML::DOMStringList> IDBObjectStore::index_names()
{
// 1. Let names be a list of the names of the indexes in this's index set.
Vector<String> names;
for (auto const& [name, index] : m_indexes)
names.append(name);
// 2. Return the result (a DOMStringList) of creating a sorted name list with names.
return create_a_sorted_name_list(realm(), names);
}
}

View file

@ -40,6 +40,7 @@ public:
AK::HashMap<String, GC::Ref<Index>>& index_set() { return m_indexes; }
WebIDL::ExceptionOr<GC::Ref<IDBIndex>> create_index(String const&, KeyPath, IDBIndexParameters options);
[[nodiscard]] GC::Ref<HTML::DOMStringList> index_names();
protected:
explicit IDBObjectStore(JS::Realm&, GC::Ref<ObjectStore>, GC::Ref<IDBTransaction>);

View file

@ -6,7 +6,7 @@
interface IDBObjectStore {
attribute DOMString name;
readonly attribute any keyPath;
[FIXME] readonly attribute DOMStringList indexNames;
readonly attribute DOMStringList indexNames;
[SameObject] readonly attribute IDBTransaction transaction;
readonly attribute boolean autoIncrement;