| //------------------------------------------------------------------------------------------------------- | |
| // 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 for 3 switch cases bailing out during different times of the execution. | |
| */ | |
| function f(x,y,z) | |
| { | |
| 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; | |
| default: | |
| WScript.Echo('default-x'); | |
| break; | |
| } | |
| switch(y) | |
| { | |
| case 1: | |
| WScript.Echo(1); | |
| break; | |
| case 2: | |
| WScript.Echo(2); | |
| break; | |
| case 3: | |
| WScript.Echo(3); | |
| break; | |
| case 4: | |
| WScript.Echo(4); | |
| break; | |
| default: | |
| WScript.Echo('default-y'); | |
| break; | |
| } | |
| switch(z) | |
| { | |
| case 1: | |
| WScript.Echo(1); | |
| break; | |
| default: | |
| WScript.Echo('default-z'); | |
| break; | |
| } | |
| } | |
| //making the first switch to get profiled as object during first run in the interpreter | |
| f(1,2,new Object); | |
| f(1,2,3); | |
| f(1,2,3); | |
| f(1,2,3); | |
| f(1,2,3); | |
| //making the second and third to bail out. | |
| for(i=0;i<30;i++) | |
| { | |
| f(1,new Object,3); | |
| f(new Object,new Object,3); | |
| } |