1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 21:37:35 +00:00

LibCrypto: Fix subtracting two negative SignedBigIntegers

Currently, we get the following results

    -1 - -2 = -1
    -2 - -1 =  1

Correct would be:

    -1 - -2 =  1
    -2 - -1 = -1

This was already attempted to be fixed in 7ed8970, but that change was
incorrect. This directly translates to LibJS BigInts having the same
incorrect behavior - it even was tested.
This commit is contained in:
Linus Groh 2021-11-16 09:17:55 +00:00
parent 014840eeca
commit 58c6a156bf
3 changed files with 17 additions and 4 deletions

View file

@ -2,7 +2,7 @@ describe("minus behavior", () => {
test("the basics", () => {
expect(3n - 4n).toBe(-1n);
expect(3n - -4n).toBe(7n);
expect(-3n - -4n).toBe(-1n);
expect(-3n - -4n).toBe(1n);
expect(-3n - 4n).toBe(-7n);
});
});