Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
michael@0 | 1 | <html> |
michael@0 | 2 | <head> |
michael@0 | 3 | <script> |
michael@0 | 4 | |
michael@0 | 5 | function X() { dump("X\n"); } |
michael@0 | 6 | function Y() { dump("Y\n"); } |
michael@0 | 7 | |
michael@0 | 8 | function boom() |
michael@0 | 9 | { |
michael@0 | 10 | dump("Start9\n"); |
michael@0 | 11 | |
michael@0 | 12 | var div = document.getElementById("v"); |
michael@0 | 13 | |
michael@0 | 14 | var textNode = document.createTextNode(String.fromCharCode(0xDAAF)); // high surrogate |
michael@0 | 15 | div.appendChild(textNode); |
michael@0 | 16 | |
michael@0 | 17 | document.addEventListener("DOMCharacterDataModified", X, true); |
michael@0 | 18 | textNode.data += 'B'; |
michael@0 | 19 | document.removeEventListener("DOMCharacterDataModified", X, true); |
michael@0 | 20 | |
michael@0 | 21 | document.addEventListener("DOMAttrModified", Y, true); |
michael@0 | 22 | textNode.data += String.fromCharCode(0xDF53); // low surrogate |
michael@0 | 23 | document.removeEventListener("DOMAttrModified", Y, true); |
michael@0 | 24 | } |
michael@0 | 25 | |
michael@0 | 26 | </script> |
michael@0 | 27 | </head> |
michael@0 | 28 | |
michael@0 | 29 | <body onload="boom();"><div id="v"></div></body> |
michael@0 | 30 | |
michael@0 | 31 | </html> |