nonIntCases.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. */
  8. /*
  9. ************************************************ TEST 1**********************************************
  10. ***Test - all the case statements containing non-integer items
  11. */
  12. function f(x)
  13. {
  14. switch(x)
  15. {
  16. case f:
  17. WScript.Echo(1);
  18. break;
  19. case f:
  20. WScript.Echo(2);
  21. break;
  22. case f:
  23. WScript.Echo(3);
  24. break;
  25. case f:
  26. WScript.Echo(4);
  27. break;
  28. case f:
  29. WScript.Echo(5);
  30. break;
  31. case f:
  32. WScript.Echo(6);
  33. break;
  34. case f:
  35. WScript.Echo(7);
  36. break;
  37. case f:
  38. WScript.Echo(8);
  39. break;
  40. case f:
  41. WScript.Echo(9);
  42. break;
  43. case f:
  44. WScript.Echo(10);
  45. break;
  46. default:
  47. WScript.Echo('first switch default');
  48. break;
  49. }
  50. }
  51. for(i=0;i<5;i++)
  52. {
  53. f(11);
  54. }
  55. /*
  56. ************************************************ TEST 2**********************************************
  57. *Test with mixed type in case statements - Integers, objects, and expressions
  58. */
  59. function g(x)
  60. {
  61. switch(x)
  62. {
  63. case f:
  64. WScript.Echo(1);
  65. break;
  66. case 2:
  67. WScript.Echo(2);
  68. break;
  69. case f:
  70. WScript.Echo(3);
  71. break;
  72. case 4:
  73. WScript.Echo(4);
  74. break;
  75. case 'hello':
  76. WScript.Echo('hello');
  77. break;
  78. case 5:
  79. WScript.Echo(5);
  80. break;
  81. case f:
  82. WScript.Echo('f');
  83. break;
  84. case 6:
  85. WScript.Echo(6);
  86. break;
  87. case 7:
  88. WScript.Echo(7);
  89. break;
  90. case 7+5:
  91. WScript.Echo(13);
  92. break;
  93. case 8:
  94. WScript.Echo(8);
  95. break;
  96. default:
  97. WScript.Echo('second switch default');
  98. break;
  99. }
  100. }
  101. g(1);
  102. g(2);
  103. g(3);
  104. g(8);
  105. g(5);
  106. g(13);
  107. g(new Object)