blob: 3e2cf716dedd73c71769c8222baab207eac28db1 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// 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*******************************
* Test with switch expressions as math exp.
* Contains 3 switch cases
*/
function f(x)
{
switch(x++) // post increment
{
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;
default:
WScript.Echo('default');
break;
}
switch(++x) //pre increment
{
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;
default:
WScript.Echo('default');
break;
}
switch(x+10) //math expression - adds 10 to x
{
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 <= 11; i++)
{
f(i);
}
//causing bail out to happen
for(i=0;i<200;i++)
{
f(new Object);
f(100);
f(5);
}