Finish the Rust implementation of the spec tree-construction algorithms needed by the LibWeb test suite. Add the remaining table modes, foster parenting, scope helpers, adoption agency handling, ruby/list/form and select cases, frameset state, foreign-content edge cases, and parser host callbacks. Preserve behavior that depends on the C++ DOM integration, including parser-created custom element reactions, fragment quirks mode, arbitrary fragment namespaces, template fragment mode, fragment form ownership, MathML annotation-xml boundaries, contextual fragment scripts, parser script source positions, document.close() parser state, void-element insertion, and duplicate attribute tracking. Add focused tests for the parser edge cases that are easy to regress at the boundary between the Rust tree builder and the C++ DOM host.
19 lines
528 B
HTML
19 lines
528 B
HTML
<!DOCTYPE html>
|
|
<script src="../include.js"></script>
|
|
<script>
|
|
removeTestErrorHandler();
|
|
let labels = ["HTML", "SVG"];
|
|
let lines = [];
|
|
window.onerror = (message, source, lineno) => {
|
|
lines.push(`${labels[lines.length]} split start tag line: ${lineno}`);
|
|
return true;
|
|
};
|
|
test(() => {
|
|
for (let line of lines)
|
|
println(line);
|
|
});
|
|
</script>
|
|
<script
|
|
>throw new Error("HTML split start tag");</script>
|
|
<svg><script
|
|
>throw new Error("SVG split start tag");</script></svg>
|