jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
window.elementWithShadowInDom = document.createElement('div');
window.elementWithShadowInDom.attachShadow({mode :'open'});
window.childElementInsideShadowInDom = document.createElement('div');
window.elementWithShadowInDom.shadowRoot.appendChild(window.childElementInsideShadowInDom);
document.body.appendChild(window.elementWithShadowInDom);
window.elementWithShadowNOTDom = document.createElement('div');
window.elementWithShadowNOTDom.attachShadow({mode :'open'});
window.childElementInsideShadowNOTDom = document.createElement('div');
elementWithShadowNOTDom.shadowRoot.appendChild(window.childElementInsideShadowNOTDom);
window.elementInDom = document.createElement('div');
window.elementInDom.attachShadow({mode :'open'});
window.childElementInDom = document.createElement('div');
window.elementInDom.shadowRoot.appendChild(window.childElementInDom);
document.body.appendChild(window.elementInDom);
window.elementNOTDom = document.createElement('div');
window.elementNOTDom.attachShadow({mode :'open'});
window.childElementNOTDom = document.createElement('div');
window.elementNOTDom.shadowRoot.appendChild(window.childElementNOTDom);
window.isInDocument = function(element) {
if(document.body.contains(element)) {
return true;
}
let currentElement = element;
while(currentElement && currentElement.parentNode) {
if(currentElement.parentNode === document) {
return true;
} else if(DocumentFragment && currentElement.parentNode instanceof DocumentFragment) {
currentElement = currentElement.parentNode.host;
} else {
currentElement = currentElement.parentNode;
}
}
return false;
}
Ready to run.
Test | Ops/sec | |
---|---|---|
Shadow DOM element is in DOM |
| ready |
Regular DOM element NOT in DOM |
| ready |
Shadow DOM element not in DOM |
| ready |
Regular DOM element in DOM |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.