| 4539 | const utf8 = new TextDecoder('utf-8'); |
| 4540 | let p = 0; |
| 4541 | const integer = () => { |
| 4542 | const m = buffer[p++]; |
| 4543 | switch (m) { |
| 4544 | case 0x69: return view.getInt8(p++); |
| 4545 | case 0x55: return view.getUint8(p++); |
| 4546 | case 0x49: { |
| 4547 | const v = view.getInt16(p); |
| 4548 | p += 2; |
| 4549 | return v; |
| 4550 | } |
| 4551 | case 0x6C: { |
| 4552 | const v = view.getInt32(p); |
| 4553 | p += 4; |
| 4554 | return v; |
| 4555 | } |
| 4556 | case 0x4C: { |
| 4557 | const v = view.getBigInt64(p); |
| 4558 | p += 8; |
| 4559 | return Number(v); |
| 4560 | } |
| 4561 | default: throw new python.Error(`UBJSON integer '0x${m.toString(16)}'.`); |
| 4562 | } |
| 4563 | }; |
| 4564 | const str = () => { |
| 4565 | const n = integer(); |
| 4566 | const s = utf8.decode(buffer.subarray(p, p + n)); |