Testcase for jQuery Ticket 6527

replaceWith doesn't leak memory

by jitter

HTML

<button id="clickme">Start</button>
<div id="mytable"> </div>

JavaScript

var count = 0,
    id = window._intervalID;

function getHtml() {
    var html = ['<div id="mytable"><table>'];
    count++;
    for (var i = 0; i < 40; i++) {
        html.push('<tr>');
        for (var j = 0; j < 20; j++)
        html.push('<td>' + count + 'c_' + i + '_' + j + '</td>');
        html.push('</tr>');
    }
    html.push('</table></div>');
    return html.join("");
}

function intervalRender() {
    id = setInterval(function() {
        jQuery('#mytable').replaceWith(getHtml());
        if (count > 1000) clearInterval(id);
    }, 10);
}

$(function() {
    $("#clickme").bind("click", function() {
        if (!id) {
            intervalRender();
            $(this).text("Stop");
        } else {
            clearInterval(id);
            id = null;
            $(this).text("Start");
        }
    });
});