| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- /*
- *******************************UNIT TEST FOR SWITCH CASE OPTIMIZATION*******************************
- * Testing for normal execution with all integers and bailing out
- */
- /*
- ************************************************** TEST 1******************************************************
- * Tests with all integer arguments
- */
- function f(x)
- {
- switch(x)
- {
- case 1:
- WScript.Echo(1);
- break;
- case 2:
- WScript.Echo(2);
- break;
- case 3:
- WScript.Echo(3);
- break;
- case 4:
- WScript.Echo(4);
- break;
- case 5:
- WScript.Echo(5);
- break;
- case 6:
- WScript.Echo(6);
- break;
- case 7:
- WScript.Echo(7);
- break;
- case 8:
- WScript.Echo(8);
- break;
- case 9:
- WScript.Echo(9);
- break;
- case 10:
- WScript.Echo(10);
- break;
- case 11:
- WScript.Echo(11);
- break;
- case 12:
- WScript.Echo(12);
- break;
- case 13:
- WScript.Echo(13);
- break;
- case 14:
- WScript.Echo(14);
- break;
- case 15:
- WScript.Echo(15);
- break;
- case 16:
- WScript.Echo(16);
- break;
- case 17:
- WScript.Echo(17);
- break;
- case 18:
- WScript.Echo(18);
- break;
- case 19:
- WScript.Echo(19);
- break;
- case 20:
- WScript.Echo(20);
- break;
- default:
- WScript.Echo('default');
- break;
- }
- }
- for (i = 1; i <= 20; i++)
- {
- f(i);
- }
- f(100);
- f(0);
- //making the switch to bail out on non-integer inputs
- for(i=0;i<35;i++)
- {
- f(new Object);
- }
- /*
- *********************************************TEST2**********************************
- * The first execution of the switch statement is with an object
- * The profiler data is updated during the first time itself and hence the optimization is not performed during the first time jit itself
- */
- function g(x)
- {
- switch(x)
- {
- case 1:
- WScript.Echo(1);
- break;
- case 2:
- WScript.Echo(2);
- break;
- case 3:
- WScript.Echo(3);
- break;
- case 4:
- WScript.Echo(4);
- break;
- case 5:
- WScript.Echo(5);
- break;
- case 6:
- WScript.Echo(6);
- break;
- case 7:
- WScript.Echo(7);
- break;
- case 8:
- WScript.Echo(8);
- break;
- case 9:
- WScript.Echo(9);
- break;
- case 10:
- WScript.Echo(10);
- break;
- case 11:
- WScript.Echo(11);
- break;
- case 12:
- WScript.Echo(12);
- break;
- case 13:
- WScript.Echo(13);
- break;
- case 14:
- WScript.Echo(14);
- break;
- case 15:
- WScript.Echo(15);
- break;
- case 16:
- WScript.Echo(16);
- break;
- case 17:
- WScript.Echo(17);
- break;
- case 18:
- WScript.Echo(18);
- break;
- case 19:
- WScript.Echo(19);
- break;
- case 20:
- WScript.Echo(20);
- break;
- default:
- WScript.Echo('default');
- break;
- }
- }
- for(i=0;i<35;i++)
- {
- g(new Object)
- g(1);
- g(-10);
- g(9);
- g(5);
- }
|