switchMathExp.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. /*
  6. *******************************UNIT TEST FOR SWITCH CASE OPTIMIZATION*******************************
  7. * Test with switch expressions as math exp.
  8. * Contains 3 switch cases
  9. */
  10. function f(x)
  11. {
  12. switch(x++) // post increment
  13. {
  14. case 1:
  15. WScript.Echo(1);
  16. break;
  17. case 2:
  18. WScript.Echo(2);
  19. break;
  20. case 3:
  21. WScript.Echo(3);
  22. break;
  23. case 4:
  24. WScript.Echo(4);
  25. break;
  26. case 5:
  27. WScript.Echo(5);
  28. break;
  29. case 6:
  30. WScript.Echo(6);
  31. break;
  32. case 7:
  33. WScript.Echo(7);
  34. break;
  35. case 8:
  36. WScript.Echo(8);
  37. break;
  38. case 9:
  39. WScript.Echo(9);
  40. break;
  41. case 10:
  42. WScript.Echo(10);
  43. break;
  44. default:
  45. WScript.Echo('default');
  46. break;
  47. }
  48. switch(++x) //pre increment
  49. {
  50. case 1:
  51. WScript.Echo(1);
  52. break;
  53. case 2:
  54. WScript.Echo(2);
  55. break;
  56. case 3:
  57. WScript.Echo(3);
  58. break;
  59. case 4:
  60. WScript.Echo(4);
  61. break;
  62. case 5:
  63. WScript.Echo(5);
  64. break;
  65. case 6:
  66. WScript.Echo(6);
  67. break;
  68. case 7:
  69. WScript.Echo(7);
  70. break;
  71. case 8:
  72. WScript.Echo(8);
  73. break;
  74. case 9:
  75. WScript.Echo(9);
  76. break;
  77. case 10:
  78. WScript.Echo(10);
  79. break;
  80. default:
  81. WScript.Echo('default');
  82. break;
  83. }
  84. switch(x+10) //math expression - adds 10 to x
  85. {
  86. case 11:
  87. WScript.Echo(11);
  88. break;
  89. case 12:
  90. WScript.Echo(12);
  91. break;
  92. case 13:
  93. WScript.Echo(13);
  94. break;
  95. case 14:
  96. WScript.Echo(14);
  97. break;
  98. case 15:
  99. WScript.Echo(15);
  100. break;
  101. case 16:
  102. WScript.Echo(16);
  103. break;
  104. case 17:
  105. WScript.Echo(17);
  106. break;
  107. case 18:
  108. WScript.Echo(18);
  109. break;
  110. case 19:
  111. WScript.Echo(19);
  112. break;
  113. case 20:
  114. WScript.Echo(20);
  115. break;
  116. default:
  117. WScript.Echo('default');
  118. break;
  119. }
  120. }
  121. for (i = 1; i <= 11; i++)
  122. {
  123. f(i);
  124. }
  125. //causing bail out to happen
  126. for(i=0;i<200;i++)
  127. {
  128. f(new Object);
  129. f(100);
  130. f(5);
  131. }