LibWeb: Implement indexed property support for HTML::Storage

We only supported named properties on Storage, and as a result
`localStorage[0]` would be disconnected from the Storage's backing map.

Fixes at least 20 subtests in WPT in /webstorage.
This commit is contained in:
Jelle Raaijmakers 2024-10-18 00:04:35 +02:00
commit 4c189166f4
Notes: github-actions[bot] 2024-10-18 21:11:13 +00:00
4 changed files with 42 additions and 0 deletions

View file

@ -38,9 +38,11 @@ private:
virtual void initialize(JS::Realm&) override;
// ^PlatformObject
virtual Optional<JS::Value> item_value(size_t index) const override;
virtual JS::Value named_item_value(FlyString const&) const override;
virtual WebIDL::ExceptionOr<DidDeletionFail> delete_value(String const&) override;
virtual Vector<FlyString> supported_property_names() const override;
virtual WebIDL::ExceptionOr<void> set_value_of_indexed_property(u32, JS::Value) override;
virtual WebIDL::ExceptionOr<void> set_value_of_named_property(String const& key, JS::Value value) override;
void reorder();