Use the .closest method to transfer recursive parent class checking into the browser engine for an expected performance improvement (#840)

https://developer.mozilla.org/en-US/docs/Web/API/Element/closest available on all modern browsers
This commit is contained in:
Eoghan Murray
2022-02-22 15:48:32 +00:00
committed by GitHub
parent 94fa6b3e8a
commit f74b7bb28d

View File

@@ -230,7 +230,11 @@ export function isBlocked(node: Node | null, blockClass: blockClass): boolean {
if (node.nodeType === node.ELEMENT_NODE) {
let needBlock = false;
if (typeof blockClass === 'string') {
needBlock = (node as HTMLElement).classList.contains(blockClass);
if ((node as HTMLElement).closest !== undefined) {
return (node as HTMLElement).closest('.' + blockClass) !== null;
} else {
needBlock = (node as HTMLElement).classList.contains(blockClass);
}
} else {
(node as HTMLElement).classList.forEach((className) => {
if (blockClass.test(className)) {