Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit e95cd2a

Browse filesBrowse 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
Copy full SHA for e95cd2a

File tree

1 file changed

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

1 file changed

+11
-1
lines changed

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

Copy file name to clipboardExpand all lines: packages/animations/browser/src/render/shared.ts
+11-1
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 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.