| function testFuncStmt1() { |
| var g = 3; |
| function f(b) { |
| if (b) { |
| function g() { return 42 } |
| assertEq(g(), 42); |
| } |
| } |
| f(true); |
| } |
| testFuncStmt1(); |
| |
| function testFuncStmt2() { |
| var g = 3; |
| (function(b) { |
| if (b) { |
| function g() { return 42 } |
| function f() { assertEq(g(), 42); } |
| f(); |
| } |
| })(true); |
| } |
| testFuncStmt2(); |
| |
| function testEval1() { |
| var g = 3; |
| function f() { |
| eval("var g = 42"); |
| assertEq(g, 42); |
| } |
| f(); |
| } |
| testEval1(); |
| |
| function testEval2() { |
| var g = 3; |
| (function() { |
| eval("var g = 42"); |
| function f() { |
| assertEq(g, 42); |
| } |
| f(); |
| })(); |
| } |
| testEval2(); |
| |
| function testWith1() { |
| var g = 3; |
| function f() { |
| with ({g:42}) { |
| assertEq(g, 42); |
| } |
| } |
| f(); |
| } |
| testWith1(); |
| |
| function testWith2() { |
| var g = 3; |
| with ({g:42}) { |
| function f() { |
| assertEq(g, 42); |
| } |
| } |
| f(); |
| } |
| testWith2(); |