Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / tests / js1_5 / Regress / regress-246964.js
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* ***** BEGIN LICENSE BLOCK *****
3  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4  *
5  * The contents of this file are subject to the Mozilla Public License Version
6  * 1.1 (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  * http://www.mozilla.org/MPL/
9  *
10  * Software distributed under the License is distributed on an "AS IS" basis,
11  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12  * for the specific language governing rights and limitations under the
13  * License.
14  *
15  * The Original Code is JavaScript Engine testing utilities.
16  *
17  * The Initial Developer of the Original Code is
18  * Mozilla Foundation.
19  * Portions created by the Initial Developer are Copyright (C) 2005
20  * the Initial Developer. All Rights Reserved.
21  *
22  * Contributor(s): Brendan Eich <brendan@mozilla.org>
23  *                 Boris Zbarsky  <bzbarsky@mit.edu>
24  *                 Steve Chapel <steven.chapel@sbcglobal.net>
25  *                 Bob Clary <bob@bclary.com>
26  *
27  * Alternatively, the contents of this file may be used under the terms of
28  * either the GNU General Public License Version 2 or later (the "GPL"), or
29  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
30  * in which case the provisions of the GPL or the LGPL are applicable instead
31  * of those above. If you wish to allow use of your version of this file only
32  * under the terms of either the GPL or the LGPL, and not to allow others to
33  * use your version of this file under the terms of the MPL, indicate your
34  * decision by deleting the provisions above and replace them with the notice
35  * and other provisions required by the GPL or the LGPL. If you do not delete
36  * the provisions above, a recipient may use your version of this file under
37  * the terms of any one of the MPL, the GPL or the LGPL.
38  *
39  * ***** END LICENSE BLOCK ***** */
40
41 //-----------------------------------------------------------------------------
42 var BUGNUMBER = 246964;
43 // see also bug 248549, bug 253150, bug 259935
44 var summary = 'undetectable document.all';
45 var actual = '';
46 var expect = '';
47
48 printBugNumber(BUGNUMBER);
49 printStatus (summary);
50
51 if (typeof document == 'undefined')
52 {
53   expect = actual = 'Test requires browser: skipped';
54   reportCompare(expect, actual, summary);
55 }
56 else
57 {
58   status = summary + ' ' + inSection(1) + ' if (document.all) ';
59   expect = false;
60   actual = false;
61   if (document.all)
62   {
63     actual = true;
64   }
65   reportCompare(expect, actual, status);
66
67   status = summary + ' ' + inSection(2) + 'if (isIE) ';
68   expect = false;
69   actual = false;
70   var isIE = document.all;
71   if (isIE)
72   {
73     actual = true;
74   }
75   reportCompare(expect, actual, status);
76
77   status = summary + ' ' + inSection(3) + ' if (document.all != undefined) ';
78   expect = false;
79   actual = false;
80   if (document.all != undefined)
81   {
82     actual = true;
83   }
84   reportCompare(expect, actual, status);
85
86
87   status = summary + ' ' + inSection(4) + ' if (document.all !== undefined) ';
88   expect = false;
89   actual = false;
90   if (document.all !== undefined)
91   {
92     actual = true;
93   }
94   reportCompare(expect, actual, status);
95
96   status = summary + ' ' + inSection(5) + ' if (document.all != null) ' ;
97   expect = false;
98   actual = false;
99   if (document.all != null)
100   {
101     actual = true;
102   }
103   reportCompare(expect, actual, status);
104
105   status = summary + ' ' + inSection(6) + ' if (document.all !== null) ' ;
106   expect = true;
107   actual = false;
108   if (document.all !== null)
109   {
110     actual = true;
111   }
112   reportCompare(expect, actual, status);
113
114   status = summary + ' ' + inSection(7) + ' if (document.all == null) ';
115   expect = true;
116   actual = false;
117   if (document.all == null)
118   {
119     actual = true;
120   }
121   reportCompare(expect, actual, status);
122
123   status = summary + ' ' + inSection(8) + ' if (document.all === null) ';
124   expect = false;
125   actual = false;
126   if (document.all === null)
127   {
128     actual = true;
129   }
130   reportCompare(expect, actual, status);
131
132   status = summary + ' ' + inSection(9) + ' if (document.all == undefined) ';
133   expect = true;
134   actual = false;
135   if (document.all == undefined)
136   {
137     actual = true;
138   }
139   reportCompare(expect, actual, status);
140
141   status = summary + ' ' + inSection(10) + ' if (document.all === undefined) ';
142   expect = true;
143   actual = false;
144   if (document.all === undefined)
145   {
146     actual = true;
147   }
148   reportCompare(expect, actual, status);
149
150   status = summary + ' ' + inSection(11) +
151     ' if (typeof document.all == "undefined") ';
152   expect = true;
153   actual = false;
154   if (typeof document.all == 'undefined')
155   {
156     actual = true;
157   }
158   reportCompare(expect, actual, status);
159
160   status = summary + ' ' + inSection(12) +
161     ' if (typeof document.all != "undefined") ';
162   expect = false;
163   actual = false;
164   if (typeof document.all != 'undefined')
165   {
166     actual = true;
167   }
168   reportCompare(expect, actual, status);
169
170   status = summary + ' ' + inSection(13) + ' if ("all" in document) ';
171   expect = (document.compatMode == 'CSS1Compat') ? false : true;
172   actual = false;
173   if ('all' in document)
174   {
175     actual = true;
176   }
177   reportCompare(expect, actual, status);
178
179   status = summary + ' ' + inSection(14) + ' if (f.ie) ';
180   var f = new foo();
181
182   expect = false;
183   actual = false;
184   if (f.ie)
185   {
186     actual = true;
187   }
188   reportCompare(expect, actual, status);
189
190 }
191
192 function foo()
193 {
194   this.ie = document.all;
195 }