| //------------------------------------------------------------------------------------------------------- | |
| // 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 1********************************************** | |
| ***Test - all the case statements containing non-integer items | |
| */ | |
| function f(x) | |
| { | |
| switch(x) | |
| { | |
| case f: | |
| WScript.Echo(1); | |
| break; | |
| case f: | |
| WScript.Echo(2); | |
| break; | |
| case f: | |
| WScript.Echo(3); | |
| break; | |
| case f: | |
| WScript.Echo(4); | |
| break; | |
| case f: | |
| WScript.Echo(5); | |
| break; | |
| case f: | |
| WScript.Echo(6); | |
| break; | |
| case f: | |
| WScript.Echo(7); | |
| break; | |
| case f: | |
| WScript.Echo(8); | |
| break; | |
| case f: | |
| WScript.Echo(9); | |
| break; | |
| case f: | |
| WScript.Echo(10); | |
| break; | |
| default: | |
| WScript.Echo('first switch default'); | |
| break; | |
| } | |
| } | |
| for(i=0;i<5;i++) | |
| { | |
| f(11); | |
| } | |
| /* | |
| ************************************************ TEST 2********************************************** | |
| *Test with mixed type in case statements - Integers, objects, and expressions | |
| */ | |
| function g(x) | |
| { | |
| switch(x) | |
| { | |
| case f: | |
| WScript.Echo(1); | |
| break; | |
| case 2: | |
| WScript.Echo(2); | |
| break; | |
| case f: | |
| WScript.Echo(3); | |
| break; | |
| case 4: | |
| WScript.Echo(4); | |
| break; | |
| case 'hello': | |
| WScript.Echo('hello'); | |
| break; | |
| case 5: | |
| WScript.Echo(5); | |
| break; | |
| case f: | |
| WScript.Echo('f'); | |
| break; | |
| case 6: | |
| WScript.Echo(6); | |
| break; | |
| case 7: | |
| WScript.Echo(7); | |
| break; | |
| case 7+5: | |
| WScript.Echo(13); | |
| break; | |
| case 8: | |
| WScript.Echo(8); | |
| break; | |
| default: | |
| WScript.Echo('second switch default'); | |
| break; | |
| } | |
| } | |
| g(1); | |
| g(2); | |
| g(3); | |
| g(8); | |
| g(5); | |
| g(13); | |
| g(new Object) | |