ladybird/Libraries/LibJS/Tests/operators/assignment-operators.js

55 lines
832 B
JavaScript

let x;
test("basic functionality", () => {
x = 1;
expect((x = 2)).toBe(2);
expect(x).toBe(2);
x = 1;
expect((x += 2)).toBe(3);
expect(x).toBe(3);
x = 3;
expect((x -= 2)).toBe(1);
expect(x).toBe(1);
x = 3;
expect((x *= 2)).toBe(6);
expect(x).toBe(6);
x = 6;
expect((x /= 2)).toBe(3);
expect(x).toBe(3);
x = 6;
expect((x %= 4)).toBe(2);
expect(x).toBe(2);
x = 2;
expect((x **= 3)).toBe(8);
expect(x).toBe(8);
x = 3;
expect((x &= 2)).toBe(2);
expect(x).toBe(2);
x = 3;
expect((x |= 4)).toBe(7);
expect(x).toBe(7);
x = 6;
expect((x ^= 2)).toBe(4);
expect(x).toBe(4);
x = 2;
expect((x <<= 2)).toBe(8);
expect(x).toBe(8);
x = 8;
expect((x >>= 2)).toBe(2);
expect(x).toBe(2);
x = -(2 ** 32 - 10);
expect((x >>>= 2)).toBe(2);
expect(x).toBe(2);
});