<!DOCTYPE HTML> <html> <head> <!-- Test that insertions work in the presence of display:none elements that separate whitespace from block boundaries --> <style> body > div { border:1px solid black; margin:1em; font-family:sans-serif; letter-spacing:2px; } em { display:none; } </style> <script> function makeSpan(text) { var e = document.createElement("span"); e.textContent = text; return e; } function loaded() { document.body.offsetHeight; var d1 = document.getElementById("d1"); d1.insertBefore(makeSpan("Hello"), d1.firstChild); var d2 = document.getElementById("d2"); d2.appendChild(makeSpan("Kitty")); var d3 = document.getElementById("d3"); d3.insertBefore(makeSpan("Hello"), d3.firstChild.nextSibling); var d4 = document.getElementById("d4"); d4.insertBefore(makeSpan("Kitty"), d4.lastChild); } </script> </head> <body onload="loaded()"> <div id="d1"><em>X</em> <span>Kitty</span></div> <div id="d2"><span>Hello</span> <em>X</em></div> <div id="d3"><div></div><em>X</em> <span>Kitty</span></div> <div id="d4"><span>Hello</span> <em>X</em><div></div></div> </body> </html>