| 113532 | // We go 1 magnitude less, for safety |
| 113533 | var MAX_ARGUMENTS_LENGTH = 0x1000; |
| 113534 | function decodeCodePointsArray(codePoints) { |
| 113535 | var len = codePoints.length; |
| 113536 | if (len <= MAX_ARGUMENTS_LENGTH) return String.fromCharCode.apply(String, codePoints) // avoid extra slice() |
| 113537 | ; |
| 113538 | // Decode in chunks to avoid "call stack size exceeded". |
| 113539 | var res = ""; |
| 113540 | var i = 0; |
| 113541 | while(i < len)res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)); |
| 113542 | return res; |
| 113543 | } |
| 113544 | function asciiSlice(buf, start, end) { |
| 113545 | var ret = ""; |
| 113546 | end = Math.min(buf.length, end); |