JSFiddle - React, Tailwind, and code Playground
HTML
<input type="button" value="$(html) - Leak" id="wrapHtml"/><br/>
<input type="button" value="$(body) - No Leak" id="wrapBody"/><br/>
<input type="button" value="$.parseHTML(html) - Slow Leak" id="parseHtml"/><br/>
<input type="button" value="$.parseHTML(body) - No Leak" id="parseBody"/>
JavaScript
var count = 1000;
$(function() {
$('#wrapHtml').click(doWrapHtml);
$('#wrapBody').click(doWrapBody);
$('#parseHtml').click(doParseHtml);
$('#parseBody').click(doParseBody);
});
function doWrapHtml() {
var data = '<html>' + $('html').html() + '</html>';
for(var x = 0; x < count; x++) {
$(data);
}
}
function doWrapBody() {
var data = '<div>' + $('body').html() + '</div>';
for(var x = 0; x < count; x++) {
$(data);
}
}
function doParseHtml() {
var data = '<html>' + $('html').html() + '</html>';
for(var x = 0; x < count; x++) {
$.parseHTML(data);
}
}
function doParseBody() {
var data = '<div>' + $('body').html() + '</div>';
for(var x = 0; x < count; x++) {
$.parseHTML(data);
}
}