Test name | Executions per second |
---|---|
CreateElement_div | 142890528.0 Ops/sec |
DOMParser | 157377296.0 Ops/sec |
var testString = '<body><script>alert(1);</script foo="bar">' + Array(100001).join('<div>x</div>') + '</body>';
function test_innerHTML() {
var element = document.createElement('div');
function decodeHTMLEntities(str) {
if (str && typeof str === 'string') {
// strip script/html tags
str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, '');
str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, '');
element.innerHTML = str;
str = element.textContent;
element.textContent = '';
}
return str;
}
return decodeHTMLEntities(testString);
}
function test_DOMParser() {
return (new DOMParser).parseFromString(testString, 'text/html').documentElement.innerText;
}