1936613.html (1013B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"></meta> 5 <script> 6 7 const xsltString = ` 8 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 9 <xsl:template match="/"> 10 <foo /> 11 </xsl:template> 12 </xsl:stylesheet> 13 `; 14 15 16 const parser = new DOMParser(); 17 18 initialDoc = parser.parseFromString(xsltString, "application/xml"); 19 20 node = initialDoc.childNodes[0] 21 22 doc1 = document.implementation.createDocument(null, null); 23 doc1.adoptNode(node); 24 doc1.appendChild(node); 25 xsltProcessor = new XSLTProcessor(); 26 xsltProcessor.importStylesheet(node); 27 doc1.removeChild(node); 28 29 doc2 = document.implementation.createDocument(null, null); 30 doc2.adoptNode(node); 31 32 node.children[0].innerHTML = "<xsl:choose><foo /></xsl:choose>" 33 34 doc1 = 1; 35 36 SpecialPowers.forceGC(); 37 SpecialPowers.forceCC(); 38 39 doc3 = document.implementation.createDocument(null, null); 40 xsltProcessor.importStylesheet(doc3); 41 42 doc3 = 1; 43 44 SpecialPowers.forceGC(); 45 SpecialPowers.forceCC(); 46 47 xsltProcessor.reset(); 48 49 </script> 50 </head> 51 </html>