Avoid big strings on the stack
Previous code resulted in RangeErrors by potentially creating big strings. Fixes issue #1065
This commit is contained in:
parent
362bd5e3a2
commit
db9daa98a5
|
@ -101,7 +101,13 @@ Websock.prototype = {
|
|||
rQshiftStr: function (len) {
|
||||
if (typeof(len) === 'undefined') { len = this.rQlen(); }
|
||||
const arr = this.rQshiftBytes(len);
|
||||
return String.fromCharCode.apply(null, arr);
|
||||
let str = "";
|
||||
// Handle large arrays in steps to avoid long strings on the stack
|
||||
for (let i = 0; i < len; i += 4096) {
|
||||
let part = arr.slice(i, i + Math.min(4096, len));
|
||||
str = str.concat(String.fromCharCode.apply(null, part));
|
||||
}
|
||||
return str;
|
||||
},
|
||||
|
||||
rQshiftBytes: function (len) {
|
||||
|
|
Loading…
Reference in New Issue