51 lines
1,013 B
HTML
51 lines
1,013 B
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8"></meta>
|
|
<script>
|
|
|
|
const xsltString = `
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:template match="/">
|
|
<foo />
|
|
</xsl:template>
|
|
</xsl:stylesheet>
|
|
`;
|
|
|
|
|
|
const parser = new DOMParser();
|
|
|
|
initialDoc = parser.parseFromString(xsltString, "application/xml");
|
|
|
|
node = initialDoc.childNodes[0]
|
|
|
|
doc1 = document.implementation.createDocument(null, null);
|
|
doc1.adoptNode(node);
|
|
doc1.appendChild(node);
|
|
xsltProcessor = new XSLTProcessor();
|
|
xsltProcessor.importStylesheet(node);
|
|
doc1.removeChild(node);
|
|
|
|
doc2 = document.implementation.createDocument(null, null);
|
|
doc2.adoptNode(node);
|
|
|
|
node.children[0].innerHTML = "<xsl:choose><foo /></xsl:choose>"
|
|
|
|
doc1 = 1;
|
|
|
|
SpecialPowers.forceGC();
|
|
SpecialPowers.forceCC();
|
|
|
|
doc3 = document.implementation.createDocument(null, null);
|
|
xsltProcessor.importStylesheet(doc3);
|
|
|
|
doc3 = 1;
|
|
|
|
SpecialPowers.forceGC();
|
|
SpecialPowers.forceCC();
|
|
|
|
xsltProcessor.reset();
|
|
|
|
</script>
|
|
</head>
|
|
</html>
|