2
0

moreSwitches1.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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 two switch statements.
  8. */
  9. function f(x,y)
  10. {
  11. //This switch contains - a string, a float and integers as its cases.
  12. switch(x)
  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 'hello': //string object
  27. WScript.Echo('hello');
  28. break;
  29. case 5:
  30. WScript.Echo(5);
  31. break;
  32. case 6:
  33. WScript.Echo(6);
  34. break;
  35. case 7.1: //float
  36. WScript.Echo(7);
  37. break;
  38. case 8:
  39. WScript.Echo(8);
  40. break;
  41. case 9:
  42. WScript.Echo(9);
  43. break;
  44. default:
  45. WScript.Echo('default');
  46. break;
  47. }
  48. //This switch contains just integers and a object at the middle.
  49. switch(y)
  50. {
  51. case 11:
  52. WScript.Echo(10);
  53. break;
  54. case 12:
  55. WScript.Echo(12);
  56. break;
  57. case 13:
  58. WScript.Echo(13);
  59. break;
  60. case 14:
  61. WScript.Echo(14);
  62. break;
  63. case f: // object
  64. WScript.Echo(15);
  65. break;
  66. case 16:
  67. WScript.Echo(16);
  68. break;
  69. case 17:
  70. WScript.Echo(17);
  71. break;
  72. case 18:
  73. WScript.Echo(18);
  74. break;
  75. case 19:
  76. WScript.Echo(19);
  77. break;
  78. case 20:
  79. WScript.Echo(20);
  80. break;
  81. default:
  82. WScript.Echo('default');
  83. break;
  84. }
  85. }
  86. f(1,12);
  87. f(2,13);
  88. f(3,15);
  89. f(8,16);
  90. f(5,16);
  91. //executing the first switch with non-integers
  92. for(i=0;i<2;i++)
  93. {
  94. f(new Object,12);
  95. }
  96. //executing the second with float and non integers.
  97. for(i=0;i<2;i++)
  98. {
  99. f(new Object,1.1);
  100. f(new Object,new Object);
  101. }