binary-bitwise-right-shift.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. load("test-common.js");
  2. try {
  3. assert((0 >> 0) === 0);
  4. assert((0 >> 1) === 0);
  5. assert((0 >> 2) === 0);
  6. assert((0 >> 3) === 0);
  7. assert((0 >> 4) === 0);
  8. assert((0 >> 5) === 0);
  9. assert((1 >> 0) === 1);
  10. assert((1 >> 1) === 0);
  11. assert((1 >> 2) === 0);
  12. assert((1 >> 3) === 0);
  13. assert((1 >> 4) === 0);
  14. assert((1 >> 5) === 0);
  15. assert((5 >> 0) === 5);
  16. assert((5 >> 1) === 2);
  17. assert((5 >> 2) === 1);
  18. assert((5 >> 3) === 0);
  19. assert((5 >> 4) === 0);
  20. assert((5 >> 5) === 0);
  21. assert((42 >> 0) === 42);
  22. assert((42 >> 1) === 21);
  23. assert((42 >> 2) === 10);
  24. assert((42 >> 3) === 5);
  25. assert((42 >> 4) === 2);
  26. assert((42 >> 5) === 1);
  27. assert((-1 >> 0) === -1);
  28. assert((-1 >> 1) === -1);
  29. assert((-1 >> 2) === -1);
  30. assert((-1 >> 3) === -1);
  31. assert((-1 >> 4) === -1);
  32. assert((-1 >> 5) === -1);
  33. assert((-5 >> 0) === -5);
  34. assert((-5 >> 1) === -3);
  35. assert((-5 >> 2) === -2);
  36. assert((-5 >> 3) === -1);
  37. assert((-5 >> 4) === -1);
  38. assert((-5 >> 5) === -1);
  39. var x = 67;
  40. var y = 4;
  41. assert(("42" >> 3) === 5);
  42. assert((x >> y) === 4);
  43. assert((x >> [[[[5]]]]) === 2);
  44. assert((undefined >> y) === 0);
  45. assert(("a" >> "b") === 0);
  46. assert((null >> null) === 0);
  47. assert((undefined >> undefined) === 0);
  48. assert((NaN >> NaN) === 0);
  49. assert((6 >> NaN) === 6);
  50. assert((Infinity >> Infinity) === 0);
  51. assert((-Infinity >> Infinity) === 0);
  52. console.log("PASS");
  53. } catch (e) {
  54. console.log("FAIL: " + e);
  55. }