assignment-evaluation-order.js 407 B

123456789101112131415161718192021
  1. test("Assignment should always evaluate LHS first", () => {
  2. function go(a) {
  3. let i = 0;
  4. a[i] = a[++i];
  5. }
  6. let a = [1, 2, 3];
  7. go(a);
  8. expect(a).toEqual([2, 2, 3]);
  9. });
  10. test("Binary assignment should always evaluate LHS first", () => {
  11. function go(a) {
  12. let i = 0;
  13. a[i] |= a[++i];
  14. }
  15. let a = [1, 2];
  16. go(a);
  17. expect(a).toEqual([3, 2]);
  18. });