LibWeb/IDB: Implement IDBObjectStore::autoIncrement

This commit is contained in:
stelar7 2025-03-24 20:56:36 +01:00
parent 3e47a0592a
commit d9c5245e47
3 changed files with 6 additions and 4 deletions

View file

@ -26,6 +26,10 @@ public:
JS::Value key_path() const;
GC::Ref<IDBTransaction> transaction() const { return m_transaction; }
// https://w3c.github.io/IndexedDB/#dom-idbobjectstore-autoincrement
// The autoIncrement getter steps are to return true if thiss object store has a key generator, and false otherwise.
bool auto_increment() const { return m_store->key_generator().has_value(); }
protected:
explicit IDBObjectStore(JS::Realm&, GC::Ref<ObjectStore>, GC::Ref<IDBTransaction>);
virtual void initialize(JS::Realm&) override;

View file

@ -8,7 +8,7 @@ interface IDBObjectStore {
readonly attribute any keyPath;
[FIXME] readonly attribute DOMStringList indexNames;
[SameObject] readonly attribute IDBTransaction transaction;
[FIXME] readonly attribute boolean autoIncrement;
readonly attribute boolean autoIncrement;
[FIXME, NewObject] IDBRequest put(any value, optional any key);
[FIXME, NewObject] IDBRequest add(any value, optional any key);

View file

@ -33,9 +33,7 @@ public:
Optional<KeyPath> key_path() const { return m_key_path; }
bool uses_inline_keys() const { return m_key_path.has_value(); }
bool uses_out_of_line_keys() const { return !m_key_path.has_value(); }
// The autoIncrement getter steps are to return true if thiss object store has a key generator, and false otherwise.
bool auto_increment() const { return m_key_generator.has_value(); }
Optional<KeyGenerator> key_generator() const { return m_key_generator; }
private:
ObjectStore(String name, bool auto_increment, Optional<KeyPath> const& key_path)