Skip to content

Commit 0a49adb

Browse files
committed
perf: optimize testSelector, add early fail
1 parent 8137a0d commit 0a49adb

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

src/utilities-dom.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@ export function testSelector(
1111
selector: CssSelector,
1212
root?: Node,
1313
): boolean {
14-
const result = Array.from(
15-
sanitizeRoot(root, elements[0]).querySelectorAll(selector),
16-
);
17-
return (
18-
result.length === elements.length &&
19-
elements.every((element) => result.includes(element))
20-
);
14+
const result = sanitizeRoot(root, elements[0]).querySelectorAll(selector);
15+
if (result.length !== elements.length) {
16+
return false;
17+
}
18+
const resultSet = new Set(result);
19+
return elements.every((element) => resultSet.has(element));
2120
}
2221

2322
/**

0 commit comments

Comments
 (0)