fix(mirror): ws 抓包 ToBase64 分块降到 8192,远离 apply 实参上限
- String.fromCharCode.apply 会把参数数组整包展开成实参,块过大必爆栈(V8 上限约 6.5 万);原 32768 虽安全但偏高,降到 8192
This commit is contained in:
1 parent
245e27e192
commit
c021d5c164
1 file changed
+3
-1
+3
-1
@@ -37,7 +37,9 @@
|
||||
}
|
||||
function ToBase64(Bytes) {
|
||||
var S = '';
|
||||
var Chunk = 0x8000; // 分块,避免超长字符串参数
|
||||
// 注意:String.fromCharCode.apply 会把参数数组整包展开成实参,块太大必然爆栈
|
||||
//(V8 实参上限约 6.5 万)。这里每块 8192 字节,远低于上限,且比逐字节拼接快得多。
|
||||
var Chunk = 0x2000;
|
||||
for (var I = 0; I < Bytes.length; I += Chunk) {
|
||||
S += String.fromCharCode.apply(null, Bytes.subarray(I, I + Chunk));
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user