|
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ |
|
2 /* This Source Code Form is subject to the terms of the Mozilla Public |
|
3 * License, v. 2.0. If a copy of the MPL was not distributed with this |
|
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
|
5 |
|
6 //----------------------------------------------------------------------------- |
|
7 var BUGNUMBER = 406572; |
|
8 var summary = 'JSOP_CLOSURE unconditionally replaces properties of the variable object - Browser only'; |
|
9 var actual = ''; |
|
10 var expect = ''; |
|
11 |
|
12 printBugNumber(BUGNUMBER); |
|
13 printStatus (summary); |
|
14 |
|
15 if (typeof window != 'undefined') |
|
16 { |
|
17 try { |
|
18 actual = "FAIL: Unexpected exception thrown"; |
|
19 |
|
20 var win = window; |
|
21 var windowString = String(window); |
|
22 window = 1; |
|
23 reportCompare(windowString, String(window), "window should be readonly"); |
|
24 |
|
25 actual = ""; // We should reach this line, and throw an exception after it |
|
26 |
|
27 if (1) |
|
28 function window() { return 1; } |
|
29 |
|
30 actual = "FAIL: this line should never be reached"; |
|
31 |
|
32 // The test harness might rely on window having its original value: |
|
33 // restore it. |
|
34 window = win; |
|
35 } catch (e) { |
|
36 } |
|
37 } |
|
38 else |
|
39 { |
|
40 expect = actual = 'Test can only run in a Gecko 1.9 browser or later.'; |
|
41 print(actual); |
|
42 } |
|
43 reportCompare(expect, actual, summary); |
|
44 |
|
45 |