(v: bigint | number)
| 439 | } |
| 440 | |
| 441 | writeVarInt64(v: bigint | number) { |
| 442 | if (typeof v !== "bigint") { |
| 443 | if (Number.isSafeInteger(v)) { |
| 444 | this.writeVarUInt64Number(v >= 0 ? v * 2 : -v * 2 - 1); |
| 445 | return; |
| 446 | } |
| 447 | v = BigInt(v); |
| 448 | } else if (v >= MIN_SAFE_BIGINT && v <= MAX_SAFE_BIGINT) { |
| 449 | const value = Number(v); |
| 450 | this.writeVarUInt64Number(value >= 0 ? value * 2 : -value * 2 - 1); |
| 451 | return; |
| 452 | } |
| 453 | this.writeVarUInt64((v << 1n) ^ (v >> 63n)); |
| 454 | } |
| 455 | |
| 456 | writeVarUInt64(val: bigint | number) { |
| 457 | if (typeof val !== "bigint") { |
no test coverage detected