Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
michael@0 | 1 | <!DOCTYPE html> |
michael@0 | 2 | <html class="reftest-wait"> |
michael@0 | 3 | <head> |
michael@0 | 4 | <script> |
michael@0 | 5 | |
michael@0 | 6 | function frameDoc() { return document.getElementById("f").contentDocument; } |
michael@0 | 7 | |
michael@0 | 8 | function arm() { |
michael@0 | 9 | // Create an element in the iframe. |
michael@0 | 10 | var div = frameDoc().createElement("div"); |
michael@0 | 11 | |
michael@0 | 12 | // Force a wrapper to be created for .style. |
michael@0 | 13 | var style = div.style; |
michael@0 | 14 | style.color = "green"; |
michael@0 | 15 | |
michael@0 | 16 | // Adopt the element out of the iframe, leaving the |style| behind. |
michael@0 | 17 | document.adoptNode(div); |
michael@0 | 18 | } |
michael@0 | 19 | |
michael@0 | 20 | function boom() |
michael@0 | 21 | { |
michael@0 | 22 | // Create an orphan. |
michael@0 | 23 | arm(); |
michael@0 | 24 | |
michael@0 | 25 | // Force an iteration over all the wrappers in frameDoc's scope, causing |
michael@0 | 26 | // us to notice the orphan. |
michael@0 | 27 | frameDoc().write("2"); |
michael@0 | 28 | |
michael@0 | 29 | // All done. |
michael@0 | 30 | document.documentElement.removeAttribute("class"); |
michael@0 | 31 | } |
michael@0 | 32 | |
michael@0 | 33 | </script> |
michael@0 | 34 | </head> |
michael@0 | 35 | <body onload="boom();"><iframe id="f" src="data:text/html,1"></iframe></body> |
michael@0 | 36 | </html> |