]>
git.saurik.com Git - apple/javascriptcore.git/blob - tests/mozilla/ecma_2/Statements/switch-004.js
2 * File Name: switch-003.js
4 * Description: The switch Statement
6 * This uses variables and objects as case expressions in switch statements.
7 * This verifies a bunch of bugs:
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
13 * Author: christine@netscape.com
14 * Date: 11 August 1998
17 var SECTION
= "switch-003";
18 var VERSION
= "ECMA_2";
19 var TITLE
= "The switch statement";
20 var BUGNUMBER
= "315988";
23 writeHeaderToLog( SECTION
+ " "+ TITLE
);
26 var testcases
= new Array();
30 var A
= new String("A");
31 var B
= new String("B");
32 TRUE
= new Boolean( true );
33 FALSE
= new Boolean( false );
37 SwitchTest( ZERO
, "ZERO" );
38 SwitchTest( NULL
, "NULL" );
39 SwitchTest( UNDEFINED
, "UNDEFINED" );
40 SwitchTest( FALSE
, "FALSE" );
41 SwitchTest( false, "false" );
44 SwitchTest ( TRUE
, "TRUE" );
46 SwitchTest( ONE
, "ONE" );
47 SwitchTest( true, "true" );
49 SwitchTest( "a", "a" );
51 SwitchTest( "b", "b" );
54 SwitchTest( new Boolean( true ), "default" );
55 SwitchTest( new Boolean(false ), "default" );
56 SwitchTest( new String( "A" ), "default" );
57 SwitchTest( new Number( 0 ), "default" );
61 function SwitchTest( input
, expect
) {
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;
86 testcases
[tc
++] = new TestCase(
88 "switch with no breaks: input is " + input
,