Переглянути джерело

LibWeb: Fix bogus insertion logic in HTMLTableSectionElement.insertRow()

Found by Domato :^)
Andreas Kling 1 рік тому
батько
коміт
c11f710628

+ 4 - 0
Tests/LibWeb/Text/expected/HTML/tbody-insert-row.txt

@@ -0,0 +1,4 @@
+   2
+[object HTMLTableRowElement]
+[object HTMLTableRowElement]
+PASS (didn't crash)

+ 11 - 0
Tests/LibWeb/Text/input/HTML/tbody-insert-row.html

@@ -0,0 +1,11 @@
+<table><tbody id="tbody"><tr></tr></tbody></table>
+<script src="../include.js"></script>
+<script>
+    test(() => {
+        tbody.insertRow(0);
+        println(tbody.rows.length)
+        println(tbody.rows[0])
+        println(tbody.rows[1])
+        println("PASS (didn't crash)");
+    });
+</script>

+ 1 - 1
Userland/Libraries/LibWeb/HTML/HTMLTableSectionElement.cpp

@@ -66,7 +66,7 @@ WebIDL::ExceptionOr<JS::NonnullGCPtr<HTMLTableRowElement>> HTMLTableSectionEleme
         TRY(append_child(table_row));
     // 4. Otherwise, insert table row as a child of this element, immediately before the index-th tr element in the rows collection.
     else
-        table_row.insert_before(*this, rows_collection->item(index));
+        insert_before(table_row, rows_collection->item(index));
 
     // 5. Return table row.
     return JS::NonnullGCPtr(table_row);