Use 64-bit integers for JSON numbers

This commit is contained in:
Vladimir Grichina 2019-02-27 21:18:38 -08:00
parent e564e7171c
commit 895aefa646
2 changed files with 7 additions and 8 deletions

View File

@ -15,7 +15,7 @@ export abstract class JSONHandler {
setNull(name: string): void {
}
setInteger(name: string, value: i32): void {
setInteger(name: string, value: i64): void {
}
pushArray(name: string): bool {
@ -51,9 +51,8 @@ export class ThrowingJSONHandler extends JSONHandler {
assert(false, 'Unexpected null field ' + name);
}
setInteger(name: string, value: i32): void {
let arr: Array<i32> = [value];
assert(false, 'Unexpected integer field ' + name + ' : ' + arr.toString());
setInteger(name: string, value: i64): void {
assert(false, 'Unexpected integer field ' + name + ' : ' + value.toString());
}
pushArray(name: string): bool {
@ -271,8 +270,8 @@ export class JSONDecoder<JSONHandlerT extends JSONHandler> {
private parseNumber(): bool {
// TODO: Parse floats
let number: i32 = 0;
let sign: i32 = 1;
let number: i64 = 0;
let sign: i64 = 1;
if (this.peekChar() == "-".charCodeAt(0)) {
sign = -1;
this.readChar();

View File

@ -35,7 +35,7 @@ export class JSONEncoder {
this.write("null");
}
setInteger(name: string, value: i32): void {
setInteger(name: string, value: i64): void {
this.writeKey(name);
this.writeInteger(value);
}
@ -109,7 +109,7 @@ export class JSONEncoder {
this.write(value ? "true" : "false");
}
private writeInteger(value: i32): void {
private writeInteger(value: i64): void {
this.write(value.toString());
}