8833a2b8f8
The sanitizer walked only element nodes, so a script hidden in a downlevel IE conditional comment slipped through. golang.org/x/net/html parses <!--[if lt IE 9]><script src="..."></script><![endif]--> as a single comment node whose data holds the raw markup, so the element walk never sees the <script> and it rendered straight back out, a live-CDN script reference left sitting in a page kage promises is inert. Plenty of older docs sites (clojure.org, cordova.apache.org, and the async library docs among them) still ship html5shiv, respond.js, or placeholders.js this way. Drop conditional comments in the walk. The downlevel-hidden form is one comment and goes whole; the downlevel-revealed form keeps its content, which lives in sibling nodes, and loses only the two markers.