Skip to content

Commit 350b07b

Browse files
Brian Vaughnzhengjitf
Brian Vaughn
authored andcommitted
Updated the utfDecodeString() method to avoid call stack exceeded error (facebook#22330)
1 parent a422f05 commit 350b07b

File tree

1 file changed

+10
-1
lines changed
  • packages/react-devtools-shared/src

1 file changed

+10
-1
lines changed

packages/react-devtools-shared/src/utils.js

+10-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,16 @@ export function getUID(): number {
126126
}
127127

128128
export function utfDecodeString(array: Array<number>): string {
129-
return String.fromCodePoint(...array);
129+
// Avoid spreading the array (e.g. String.fromCodePoint(...array))
130+
// Functions arguments are first placed on the stack before the function is called
131+
// which throws a RangeError for large arrays.
132+
// See github.com/facebook/react/issues/22293
133+
let string = '';
134+
for (let i = 0; i < array.length; i++) {
135+
const char = array[i];
136+
string += String.fromCodePoint(char);
137+
}
138+
return string;
130139
}
131140

132141
export function utfEncodeString(string: string): Array<number> {

0 commit comments

Comments
 (0)