mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-12 19:19:30 +00:00
LibWeb: Implement Node.normalize()
This method puts the given node and all of its sub-tree into a normalized form. A normalized sub-tree has no empty text nodes and no adjacent text nodes.
This commit is contained in:
parent
c92222dcae
commit
0a0651f34e
Notes:
sideshowbarker
2024-07-17 02:29:45 +09:00
Author: https://github.com/tcl3
Commit: 0a0651f34e
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/588
5 changed files with 148 additions and 0 deletions
29
Tests/LibWeb/Text/input/DOM/Node-normalize.html
Normal file
29
Tests/LibWeb/Text/input/DOM/Node-normalize.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
<!DOCTYPE html>
|
||||
<script src="../include.js"></script>
|
||||
<script>
|
||||
test(() => {
|
||||
const documentFragment = document.createDocumentFragment();
|
||||
const textNode1 = document.createTextNode("1");
|
||||
const textNode2 = document.createTextNode("2");
|
||||
const textNode3 = document.createTextNode("3");
|
||||
const textNode4 = document.createTextNode("4");
|
||||
const emptyTextNode = document.createTextNode("");
|
||||
documentFragment.appendChild(textNode1);
|
||||
documentFragment.appendChild(emptyTextNode);
|
||||
documentFragment.appendChild(textNode2);
|
||||
println(`Document fragment initial text: ${documentFragment.textContent}, child nodes: ${documentFragment.childNodes.length}`);
|
||||
let element = document.createElement('div');
|
||||
documentFragment.appendChild(element);
|
||||
element.appendChild(textNode3);
|
||||
element.appendChild(textNode4);
|
||||
println(`Element initial text: ${element.textContent}, child nodes: ${element.childNodes.length}`);
|
||||
document.normalize();
|
||||
println(`Element text after document.normalize(): ${element.textContent}, child nodes: ${element.childNodes.length}`);
|
||||
documentFragment.normalize();
|
||||
println(`Document fragment text after documentFragment.normalize(): ${documentFragment.textContent}, child nodes: ${documentFragment.childNodes.length}`);
|
||||
println(`Text node 1 data: ${textNode1.data}`);
|
||||
println(`Text node 2 data: ${textNode2.data}`);
|
||||
println(`Text node 3 data: ${textNode3.data}`);
|
||||
println(`Text node 4 data: ${textNode4.data}`);
|
||||
});
|
||||
</script>
|
Loading…
Add table
Add a link
Reference in a new issue