| 61463 | // We go 1 magnitude less, for safety |
| 61464 | var MAX_ARGUMENTS_LENGTH = 0x1000; |
| 61465 | function decodeCodePointsArray(codePoints) { |
| 61466 | var len = codePoints.length; |
| 61467 | if (len <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode.apply(String, codePoints) // avoid extra slice() |
| 61468 | ; |
| 61469 | // Decode in chunks to avoid "call stack size exceeded". |
| 61470 | var res = ""; |
| 61471 | var i = 0; |
| 61472 | while(i < len)res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); |
| 61473 | return res; |
| 61474 | } |
| 61475 | function asciiSlice(buf, start, end) { |
| 61476 | var ret = ""; |
| 61477 | end = Math.min(buf.length, end); |