strict-nested-assign-shadowed-catch-call.js (797B)
1 /* 2 * Any copyright is dedicated to the Public Domain. 3 * http://creativecommons.org/licenses/publicdomain/ 4 */ 5 load(libdir + 'array-compare.js'); 6 7 var obj = {}; 8 9 function strictNestedAssignShadowCatchCall(p) 10 { 11 "use strict"; 12 function inner() 13 { 14 try 15 { 16 } 17 catch (p) 18 { 19 var f = function innermost() { p = 1776; return 12; }; 20 f(); 21 } 22 } 23 inner(); 24 return arguments; 25 } 26 27 var a1, a2, a3, a4; 28 for (var i = 0; i < 5; i++) 29 { 30 a1 = strictNestedAssignShadowCatchCall(); 31 a2 = strictNestedAssignShadowCatchCall(99); 32 a3 = strictNestedAssignShadowCatchCall(""); 33 a4 = strictNestedAssignShadowCatchCall(obj); 34 } 35 36 assertEq(arraysEqual(a1, []), true); 37 assertEq(arraysEqual(a2, [99]), true); 38 assertEq(arraysEqual(a3, [""]), true); 39 assertEq(arraysEqual(a4, [obj]), true);