<!DOCTYPE html><!-- webkit-test-runner [ enableKeygenElement=true ] -->
<html>
    <head>
        <title>Simple text iteration test</title>
    </head>
    <body>
        <p>
            Test passes if it does not crash.
        </p>
        <script>
            if (window['testRunner'])
                window.testRunner.dumpAsText();

            var xs=[
                "el0=document.createElementNS('http://www.w3.org/2000/svg', 'svg'); document.body.appendChild(el0); ",
                 "el1=document.createElementNS('http://www.w3.org/2000/svg', 'svg'); ",
                 "el2=document.createElementNS('http://www.w3.org/2000/svg', 'text'); el0.appendChild(el2); ",
                 "document.body.appendChild(document.createTextNode(unescape('%ue029%ue36b%uebfb%uc23b%ua104%u7b74'))); ",
                 "el3=document.createElementNS('http://www.w3.org/2000/svg', 'symbol'); ",
                 "el5=document.createElementNS('http://www.w3.org/2000/svg', 'vkern'); ",
                 "el6=document.createElementNS('http://www.w3.org/2000/svg', 'a'); ",
                 "el7=document.createElementNS('http://www.w3.org/2000/svg', 'tspan'); el2.appendChild(el7); ",
                 "el8=document.createElementNS('http://www.w3.org/2000/svg', 'font'); ",
                 "el7.appendChild(document.createTextNode(unescape('%u937b%uf703%ub8bf%u0bce%uc2e8%u8d37'))); ",
                 "el10=document.createElementNS('http://www.w3.org/2000/svg', 'filter'); el10.setAttribute('enable-background', '29');el10.setAttribute('height', '96');",
                 "el11=document.createElementNS('http://www.w3.org/2000/svg', 'set'); el8.appendChild(el11); ",
                 "el12=document.createElement('keygen'); el11.parentNode.replaceChild(el12, el11);",
                 "el13=document.createElementNS('http://www.w3.org/2000/svg', 'marker'); ",
                 "el14=document.createElementNS('http://www.w3.org/2000/svg', 'path'); ",
                 "el15=document.createElementNS('http://www.w3.org/2000/svg', 'filter'); el15.setAttribute('enable-background', '169');",
                 "el7.appendChild(document.createTextNode(unescape('%uc65c%uae89%u90d9%ud9e8'))); ",
                 "el34=document.createElementNS('http://www.w3.org/2000/svg',  ",
                 "el131=document.createElementNS('http://www.w3.org/2000/svg',  ",
                 "el23.setAttribute('filter', 'url(#el10)')",
                 "window.getSelection().setBaseAndExtent(el3,0, 4)",
                 "setTimeout('window.close()', 100)"
            ];
            function next() {
                var xy=xs.shift();
                eval(xy);
                setTimeout(next, 0)
            }
            setTimeout(next, 0)
        </script>
    </body>
</html>
