regress-446026-01.js (1095B)
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 = 446026; 8 var summary = 'brian loves eval(s, o)'; 9 var actual = ''; 10 var expect = ''; 11 12 printBugNumber(BUGNUMBER); 13 printStatus (summary); 14 15 var b = 45; 16 17 // Getting "private" variables 18 var obj = (function() { 19 var a = 21; 20 return { 21 // public function must reference 'a' 22 fn: function() {a;} 23 }; 24 })(); 25 26 expect = 'ReferenceError: a is not defined | undefined | 45'; 27 actual = ''; 28 29 var foo; 30 31 try { 32 eval('bar = b; foo=a', obj.fn); 33 } catch (e) { 34 actual = e; 35 } 36 print(actual += " | " + foo + " | " + bar); // 21 37 reportCompare(expect, actual, summary); 38 39 expect = 'No Error'; 40 actual = 'No Error'; 41 42 try 43 { 44 eval("", {print:1}); 45 print(1); 46 } 47 catch(ex) 48 { 49 actual = ex + ''; 50 } 51 reportCompare(expect, actual, summary);