regress-406572.js (1395B)
1 /* -*- indent-tabs-mode: nil; js-indent-level: 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 if (1) 26 function window() { return 1; } 27 28 // We should reach this line without throwing. Annex B means the 29 // block-scoped function above gets an assignment to 'window' in the 30 // nearest 'var' environment, but since 'window' is read-only, the 31 // assignment silently fails. 32 actual = ""; 33 34 // The test harness might rely on window having its original value: 35 // restore it. 36 window = win; 37 } catch (e) { 38 } 39 } 40 else 41 { 42 expect = actual = 'Test can only run in a Gecko 1.9 browser or later.'; 43 print(actual); 44 } 45 reportCompare(expect, actual, summary);