* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / Microsoft.JScript / Test / Mozilla / js1_5 / Regress / regress-140974.js
1 /* ***** BEGIN LICENSE BLOCK *****
2  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3  *
4  * The contents of this file are subject to the Mozilla Public License Version
5  * 1.1 (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  * http://www.mozilla.org/MPL/
8  *
9  * Software distributed under the License is distributed on an "AS IS" basis,
10  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11  * for the specific language governing rights and limitations under the
12  * License.
13  *
14  * The Original Code is JavaScript Engine testing utilities.
15  *
16  * The Initial Developer of the Original Code is
17  * Netscape Communications Corp.
18  * Portions created by the Initial Developer are Copyright (C) 2002
19  * the Initial Developer. All Rights Reserved.
20  *
21  * Contributor(s):
22  *   martin.honnen@gmx.de, pschwartau@netscape.com
23  *
24  * Alternatively, the contents of this file may be used under the terms of
25  * either the GNU General Public License Version 2 or later (the "GPL"), or
26  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27  * in which case the provisions of the GPL or the LGPL are applicable instead
28  * of those above. If you wish to allow use of your version of this file only
29  * under the terms of either the GPL or the LGPL, and not to allow others to
30  * use your version of this file under the terms of the MPL, indicate your
31  * decision by deleting the provisions above and replace them with the notice
32  * and other provisions required by the GPL or the LGPL. If you do not delete
33  * the provisions above, a recipient may use your version of this file under
34  * the terms of any one of the MPL, the GPL or the LGPL.
35  *
36  * ***** END LICENSE BLOCK *****
37  *
38  *
39  * Date:    04 May 2002
40  * SUMMARY: |if (false) {var x;} should create the variable x
41  * See http://bugzilla.mozilla.org/show_bug.cgi?id=140974
42  *
43  */
44 //-----------------------------------------------------------------------------
45 var UBound = 0;
46 var bug = 140974;
47 var TEST_PASSED = 'variable was created';
48 var TEST_FAILED = 'variable was NOT created';
49 var summary = '|if (false) {var x;}| should create the variable x';
50 var status = '';
51 var statusitems = [];
52 var actual = '';
53 var actualvalues = [];
54 var expect= '';
55 var expectedvalues = [];
56
57
58 // --------------  THESE TWO SECTIONS TEST THE VARIABLE X  --------------
59 status = inSection(1);
60 actual = TEST_PASSED;
61 try{ X;} catch(e) {actual = TEST_FAILED}
62 expect = TEST_PASSED;
63 addThis();
64
65 var X;
66
67 status = inSection(2);
68 actual = TEST_PASSED;
69 try{ X;} catch(e) {actual = TEST_FAILED}
70 expect = TEST_PASSED;
71 addThis();
72
73
74
75 // --------------  THESE TWO SECTIONS TEST THE VARIABLE Y  --------------
76 status = inSection(3);
77 actual = TEST_PASSED;
78 try{ Y;} catch(e) {actual = TEST_FAILED}
79 expect = TEST_PASSED;
80 addThis();
81
82 if (false) {var Y;};
83
84 status = inSection(4);
85 actual = TEST_PASSED;
86 try{ Y;} catch(e) {actual = TEST_FAILED}
87 expect = TEST_PASSED;
88 addThis();
89
90
91
92 // --------------  THESE TWO SECTIONS TEST THE VARIABLE Z  --------------
93 status = inSection(5);
94 actual = TEST_PASSED;
95 try{ Z;} catch(e) {actual = TEST_FAILED}
96 expect = TEST_PASSED;
97 addThis();
98
99 if (false) { for (var Z; false;){} }
100
101 status = inSection(6);
102 actual = TEST_PASSED;
103 try{ Z;} catch(e) {actual = TEST_FAILED}
104 expect = TEST_PASSED;
105 addThis();
106
107
108
109
110 //-----------------------------------------------------------------------------
111 test();
112 //-----------------------------------------------------------------------------
113
114
115
116 function addThis()
117 {
118   statusitems[UBound] = status;
119   actualvalues[UBound] = actual;
120   expectedvalues[UBound] = expect;
121   UBound++;
122 }
123
124
125 function test()
126 {
127   enterFunc('test');
128   printBugNumber(bug);
129   printStatus(summary);
130
131   for (var i=0; i<UBound; i++)
132   {
133     reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
134   }
135
136   exitFunc ('test');
137 }