Skip to content

Commit f74b7bb

Browse files
authored
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
1 parent 94fa6b3 commit f74b7bb

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

packages/rrweb/src/utils.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,11 @@ export function isBlocked(node: Node | null, blockClass: blockClass): boolean {
230230
if (node.nodeType === node.ELEMENT_NODE) {
231231
let needBlock = false;
232232
if (typeof blockClass === 'string') {
233-
needBlock = (node as HTMLElement).classList.contains(blockClass);
233+
if ((node as HTMLElement).closest !== undefined) {
234+
return (node as HTMLElement).closest('.' + blockClass) !== null;
235+
} else {
236+
needBlock = (node as HTMLElement).classList.contains(blockClass);
237+
}
234238
} else {
235239
(node as HTMLElement).classList.forEach((className) => {
236240
if (blockClass.test(className)) {

0 commit comments

Comments
 (0)