File indexing completed on 2024-04-28 15:28:39
0001 var myvar = 1; 0002 0003 function varInFunction() { 0004 return (myvar == undefined); 0005 var myvar = 2; 0006 } 0007 0008 function varInVarList() { 0009 return (myvar == undefined); 0010 var a = 1, b = 0, myvar = 2; 0011 } 0012 0013 function varListOrder() { 0014 var tmp = 0; 0015 var i = ++tmp, j = ++tmp; 0016 return j == 2; 0017 } 0018 0019 function varInBlock() { 0020 return (myvar == undefined); 0021 { 0022 var myvar = 2; 0023 } 0024 } 0025 0026 function varInIf() { 0027 return (myvar == undefined); 0028 if (false) 0029 var myvar = 2; 0030 } 0031 0032 function varInElse() { 0033 return (myvar == undefined); 0034 if (true) { 0035 } 0036 else 0037 var myvar = 2; 0038 } 0039 0040 function varInDoWhile() { 0041 return (myvar == undefined); 0042 do 0043 var myvar = 2; 0044 while (false); 0045 } 0046 0047 function varInWhile() { 0048 return (myvar == undefined); 0049 while (false) 0050 var myvar = 2; 0051 } 0052 0053 function varInFor() { 0054 return (myvar == undefined); 0055 var i; 0056 for (i = 0; i < 0; i++) 0057 var myvar = 2; 0058 } 0059 0060 function varInForInitExpr() { 0061 return (myvar == undefined); 0062 for (var myvar = 2; i < 2; i++) { 0063 } 0064 } 0065 0066 function varInForIn() { 0067 return (myvar == undefined); 0068 var o = new Object(); 0069 var i; 0070 for (i in o) 0071 var myvar = 2; 0072 } 0073 0074 function varInWith() { 0075 return (myvar == undefined); 0076 with (String) 0077 var myvar = 2; 0078 } 0079 0080 function varInCase() { 0081 return (myvar == undefined); 0082 switch (1) { 0083 case 0: 0084 var myvar = 2; 0085 case 1: 0086 } 0087 } 0088 0089 function varInLabel() { 0090 return (myvar == undefined); 0091 label1: 0092 var myvar = 2; 0093 } 0094 0095 function varInCatch() { 0096 return (myvar == undefined); 0097 try { 0098 } 0099 catch (e) { 0100 var myvar = 2; 0101 } 0102 } 0103 0104 function varInFinally() { 0105 return (myvar == undefined); 0106 try { 0107 } 0108 finally { 0109 var myvar = 2; 0110 } 0111 } 0112 0113 function varInTry() { 0114 return (myvar == undefined); 0115 try { 0116 var myvar = 2; 0117 } 0118 catch (e) { 0119 } 0120 finally { 0121 } 0122 } 0123 0124 function varInSubFunction() { 0125 return (myvar == 1); 0126 function subfunction() { 0127 var myvar = 2; 0128 } 0129 } 0130 0131 if (!varGlobal) 0132 var varGlobal = 1; 0133 0134 shouldBe("varInFunction()","true"); 0135 shouldBe("varInVarList()","true"); 0136 shouldBe("varListOrder()","true"); 0137 shouldBe("varInBlock()","true"); 0138 shouldBe("varInIf()","true"); 0139 shouldBe("varInElse()","true"); 0140 shouldBe("varInDoWhile()","true"); 0141 shouldBe("varInWhile()","true"); 0142 shouldBe("varInFor()","true"); 0143 shouldBe("varInForIn()","true"); 0144 shouldBe("varInWith()","true"); 0145 shouldBe("varInCase()","true"); 0146 shouldBe("varInLabel()","true"); 0147 shouldBe("varInCatch()","true"); 0148 shouldBe("varInFinally()","true"); 0149 shouldBe("varInTry()","true"); 0150 shouldBe("varInForInitExpr()","true"); 0151 shouldBe("varInSubFunction()","true"); 0152 shouldBe("varGlobal", "1"); 0153 0154 var overrideVar = 1; 0155 var overrideVar; 0156 shouldBe("overrideVar", "1"); 0157 0158 var overrideVar2 = 1; 0159 var overrideVar2 = 2; 0160 shouldBe("overrideVar2", "2");