1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00

AK: Fix userland parsing of rounded floating point numbers

Parse JSON floating point literals properly,
No longer throwing a SyntaxError when the decimal portion
of the number exceeds the capacity of u32.

Added tests to AK/TestJSON and LibJS/builtins/JSON/JSON.parse
This commit is contained in:
serenitydev 2022-02-11 03:29:08 -05:00 committed by Tim Flynn
parent af75503c17
commit 23c72c6728
3 changed files with 19 additions and 8 deletions

View file

@ -43,3 +43,10 @@ test("negative zero", () => {
expect(JSON.parse(-0)).toEqual(0);
});
// The underlying parser resolves decimal numbers by storing the decimal portion in an integer
// This test handles a regression where the decimal portion was only using a u32 vs. u64
// and would fail to parse.
test("long decimal parse", () => {
expect(JSON.parse("1644452550.6489999294281")).toEqual(1644452550.6489999294281);
});