Skip to content

Commit e95cd2a

Browse files
basherrthePunderWoman
authored andcommitted
fix(animations): replace copy of query selector node-list from "spread" to "for" (#39646)
For element queries that return sufficiently large NodeList objects, using spread syntax to populate the results array causes a RangeError due to the call stack limit being reached. This commit updates the code to use regular "for" loop instead. Fixes #38551. PR Close #39646
1 parent 6dc74fd commit e95cd2a

File tree

1 file changed

+11
-1
lines changed
  • packages/animations/browser/src/render

1 file changed

+11
-1
lines changed

packages/animations/browser/src/render/shared.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,17 @@ if (_isNode || typeof Element !== 'undefined') {
183183
_query = (element: any, selector: string, multi: boolean): any[] => {
184184
let results: any[] = [];
185185
if (multi) {
186-
results.push(...element.querySelectorAll(selector));
186+
// DO NOT REFACTOR TO USE SPREAD SYNTAX.
187+
// For element queries that return sufficiently large NodeList objects,
188+
// using spread syntax to populate the results array causes a RangeError
189+
// due to the call stack limit being reached. `Array.from` can not be used
190+
// as well, since NodeList is not iterable in IE 11, see
191+
// https://developer.mozilla.org/en-US/docs/Web/API/NodeList
192+
// More info is available in #38551.
193+
const elems = element.querySelectorAll(selector);
194+
for (let i = 0; i < elems.length; i++) {
195+
results.push(elems[i]);
196+
}
187197
} else {
188198
const elm = element.querySelector(selector);
189199
if (elm) {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy