assignment-operators.js 926 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. load("test-common.js");
  2. try {
  3. var x;
  4. x = 1;
  5. assert((x = 2) === 2);
  6. assert(x === 2);
  7. x = 1;
  8. assert((x += 2) === 3);
  9. assert(x === 3);
  10. x = 3;
  11. assert((x -= 2) === 1);
  12. assert(x === 1);
  13. x = 3;
  14. assert((x *= 2) === 6);
  15. assert(x === 6);
  16. x = 6;
  17. assert((x /= 2) === 3);
  18. assert(x === 3);
  19. x = 6;
  20. assert((x %= 4) === 2);
  21. assert(x === 2);
  22. x = 2;
  23. assert((x **= 3) === 8);
  24. assert(x === 8);
  25. x = 3;
  26. assert((x &= 2) === 2);
  27. assert(x === 2);
  28. x = 3;
  29. assert((x |= 4) === 7);
  30. assert(x === 7);
  31. x = 6;
  32. assert((x ^= 2) === 4);
  33. assert(x === 4);
  34. x = 2;
  35. assert((x <<= 2) === 8);
  36. assert(x === 8);
  37. x = 8;
  38. assert((x >>= 2) === 2);
  39. assert(x === 2);
  40. x = -(2 ** 32 - 10);
  41. assert((x >>>= 2) === 2);
  42. assert(x === 2);
  43. console.log("PASS");
  44. } catch (e) {
  45. console.log("FAIL: " + e);
  46. }