From 0cc8698a620b172e55fdaca6368c3642e8198271 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Wed, 13 Mar 2024 15:29:32 -0400 Subject: [PATCH] LibWeb: Reverse check for whether a FilesList index is supported This fixes for..of iteration of a FilesList object. --- Tests/LibWeb/Text/expected/input-file.txt | 15 ++++++++++----- Tests/LibWeb/Text/input/input-file.html | 8 +++++++- Userland/Libraries/LibWeb/FileAPI/FileList.cpp | 2 +- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Tests/LibWeb/Text/expected/input-file.txt b/Tests/LibWeb/Text/expected/input-file.txt index 6e3a94c410..dda004e38d 100644 --- a/Tests/LibWeb/Text/expected/input-file.txt +++ b/Tests/LibWeb/Text/expected/input-file.txt @@ -1,7 +1,12 @@ Select file...file1 Select files...4 files selected. input1: -file1: Contents for file1 +file1 (index iteration): Contents for file1 +file1 (for..of iteration): Contents for file1 input2: -file1: Contents for file1 -file2: Contents for file2 -file3: Contents for file3 -file4: Contents for file4 +file1 (index iteration): Contents for file1 +file2 (index iteration): Contents for file2 +file3 (index iteration): Contents for file3 +file4 (index iteration): Contents for file4 +file1 (for..of iteration): Contents for file1 +file2 (for..of iteration): Contents for file2 +file3 (for..of iteration): Contents for file3 +file4 (for..of iteration): Contents for file4 diff --git a/Tests/LibWeb/Text/input/input-file.html b/Tests/LibWeb/Text/input/input-file.html index 0ee499460a..46d41c517c 100644 --- a/Tests/LibWeb/Text/input/input-file.html +++ b/Tests/LibWeb/Text/input/input-file.html @@ -13,7 +13,13 @@ const file = input.files.item(i); const text = await file.text(); - println(`${file.name}: ${text}`); + println(`${file.name} (index iteration): ${text}`); + } + + for (let file of input.files) { + const text = await file.text(); + + println(`${file.name} (for..of iteration): ${text}`); } resolve(); diff --git a/Userland/Libraries/LibWeb/FileAPI/FileList.cpp b/Userland/Libraries/LibWeb/FileAPI/FileList.cpp index e9e66f3ba8..47fc192d98 100644 --- a/Userland/Libraries/LibWeb/FileAPI/FileList.cpp +++ b/Userland/Libraries/LibWeb/FileAPI/FileList.cpp @@ -41,7 +41,7 @@ bool FileList::is_supported_property_index(u32 index) const if (m_files.is_empty()) return false; - return m_files.size() < index; + return index < m_files.size(); } WebIDL::ExceptionOr FileList::item_value(size_t index) const