intBailOut.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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. function f(x,y)
  6. {
  7. switch(x)
  8. {
  9. case 1:
  10. WScript.Echo(1);
  11. break;
  12. case 2:
  13. WScript.Echo(2);
  14. break;
  15. case 3:
  16. WScript.Echo(3);
  17. break;
  18. case 4:
  19. WScript.Echo(4);
  20. break;
  21. case 'hello': //string object
  22. WScript.Echo('hello');
  23. break;
  24. case 5:
  25. WScript.Echo(5);
  26. break;
  27. case 6:
  28. WScript.Echo(6);
  29. break;
  30. case 7.1: //float
  31. WScript.Echo(7);
  32. break;
  33. case 8:
  34. WScript.Echo(8);
  35. break;
  36. case 9:
  37. WScript.Echo(9);
  38. break;
  39. default:
  40. WScript.Echo('default');
  41. break;
  42. }
  43. //This switch contains just integers and a object at the middle.
  44. switch(y)
  45. {
  46. case 11:
  47. WScript.Echo(10);
  48. break;
  49. case 12:
  50. WScript.Echo(12);
  51. break;
  52. case 13:
  53. WScript.Echo(13);
  54. break;
  55. case 14:
  56. WScript.Echo(14);
  57. break;
  58. case f: // object
  59. WScript.Echo(15);
  60. break;
  61. case 16:
  62. WScript.Echo(16);
  63. break;
  64. case 17:
  65. WScript.Echo(17);
  66. break;
  67. case 18:
  68. WScript.Echo(18);
  69. break;
  70. case 19:
  71. WScript.Echo(19);
  72. break;
  73. case 20:
  74. WScript.Echo(20);
  75. break;
  76. default:
  77. WScript.Echo('default');
  78. break;
  79. }
  80. }
  81. f(5,16);
  82. for(i=0;i<15;i++)
  83. {
  84. f(new Object,16);
  85. }
  86. /* Test case to see if TEST is not generated when type specialized to float type*/
  87. function test(){
  88. var b = 1;
  89. for(i=0;i<1;i++){
  90. switch((b++)) {
  91. case 1:
  92. break;
  93. case 1:
  94. break;
  95. case 1:
  96. break;
  97. case 1:
  98. break;
  99. case 100:
  100. break;
  101. case 101:
  102. break;
  103. case 102:
  104. b =-2147483648; /*min int*/
  105. break;
  106. }
  107. }
  108. };
  109. //interpreter
  110. test();
  111. //jit
  112. test();