binary-bitwise-left-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) === 2);
  11. assert((1 << 2) === 4);
  12. assert((1 << 3) === 8);
  13. assert((1 << 4) === 16);
  14. assert((1 << 5) === 32);
  15. assert((2 << 0) === 2);
  16. assert((2 << 1) === 4);
  17. assert((2 << 2) === 8);
  18. assert((2 << 3) === 16);
  19. assert((2 << 4) === 32);
  20. assert((2 << 5) === 64);
  21. assert((3 << 0) === 3);
  22. assert((3 << 1) === 6);
  23. assert((3 << 2) === 12);
  24. assert((3 << 3) === 24);
  25. assert((3 << 4) === 48);
  26. assert((3 << 5) === 96);
  27. assert((4 << 0) === 4);
  28. assert((4 << 1) === 8);
  29. assert((4 << 2) === 16);
  30. assert((4 << 3) === 32);
  31. assert((4 << 4) === 64);
  32. assert((4 << 5) === 128);
  33. assert((5 << 0) === 5);
  34. assert((5 << 1) === 10);
  35. assert((5 << 2) === 20);
  36. assert((5 << 3) === 40);
  37. assert((5 << 4) === 80);
  38. assert((5 << 5) === 160);
  39. var x = 3;
  40. var y = 7;
  41. assert(("42" << 6) === 2688);
  42. assert((x << y) === 384);
  43. assert((x << [[[[12]]]]) === 12288);
  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((NaN << 6) === 0);
  50. assert((Infinity << Infinity) === 0);
  51. assert((-Infinity << Infinity) === 0);
  52. console.log("PASS");
  53. } catch (e) {
  54. console.log("FAIL: " + e);
  55. }