]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma_2/Statements/switch-004.js
JavaScriptCore-461.tar.gz
[apple/javascriptcore.git] / tests / mozilla / ecma_2 / Statements / switch-004.js
1 /**
2 * File Name: switch-003.js
3 * ECMA Section:
4 * Description: The switch Statement
5 *
6 * This uses variables and objects as case expressions in switch statements.
7 * This verifies a bunch of bugs:
8 *
9 * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=315988
10 * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=315975
11 * http://scopus.mcom.com/bugsplat/show_bug.cgi?id=315954
12 *
13 * Author: christine@netscape.com
14 * Date: 11 August 1998
15 *
16 */
17 var SECTION = "switch-003";
18 var VERSION = "ECMA_2";
19 var TITLE = "The switch statement";
20 var BUGNUMBER= "315988";
21
22 startTest();
23 writeHeaderToLog( SECTION + " "+ TITLE);
24
25 var tc = 0;
26 var testcases = new Array();
27
28 ONE = new Number(1);
29 ZERO = new Number(0);
30 var A = new String("A");
31 var B = new String("B");
32 TRUE = new Boolean( true );
33 FALSE = new Boolean( false );
34 UNDEFINED = void 0;
35 NULL = null;
36
37 SwitchTest( ZERO, "ZERO" );
38 SwitchTest( NULL, "NULL" );
39 SwitchTest( UNDEFINED, "UNDEFINED" );
40 SwitchTest( FALSE, "FALSE" );
41 SwitchTest( false, "false" );
42 SwitchTest( 0, "0" );
43
44 SwitchTest ( TRUE, "TRUE" );
45 SwitchTest( 1, "1" );
46 SwitchTest( ONE, "ONE" );
47 SwitchTest( true, "true" );
48
49 SwitchTest( "a", "a" );
50 SwitchTest( A, "A" );
51 SwitchTest( "b", "b" );
52 SwitchTest( B, "B" );
53
54 SwitchTest( new Boolean( true ), "default" );
55 SwitchTest( new Boolean(false ), "default" );
56 SwitchTest( new String( "A" ), "default" );
57 SwitchTest( new Number( 0 ), "default" );
58
59 test();
60
61 function SwitchTest( input, expect ) {
62 var result = "";
63
64 switch ( input ) {
65 default: result += "default"; break;
66 case "a": result += "a"; break;
67 case "b": result += "b"; break;
68 case A: result += "A"; break;
69 case B: result += "B"; break;
70 case new Boolean(true): result += "new TRUE"; break;
71 case new Boolean(false): result += "new FALSE"; break;
72 case NULL: result += "NULL"; break;
73 case UNDEFINED: result += "UNDEFINED"; break;
74 case true: result += "true"; break;
75 case false: result += "false"; break;
76 case TRUE: result += "TRUE"; break;
77 case FALSE: result += "FALSE"; break;
78 case 0: result += "0"; break;
79 case 1: result += "1"; break;
80 case new Number(0) : result += "new ZERO"; break;
81 case new Number(1) : result += "new ONE"; break;
82 case ONE: result += "ONE"; break;
83 case ZERO: result += "ZERO"; break;
84 }
85
86 testcases[tc++] = new TestCase(
87 SECTION,
88 "switch with no breaks: input is " + input,
89 expect,
90 result );
91 }