This test case checks variable resolution in the presence of both eval and with.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS freeVarInsideEvalAndWith({}, "true")() is true
PASS freeVarInsideEvalAndWith({}, "false")() is false
PASS freeVarInsideEvalAndWith({}, "var x = 10; x")() == 10 is true
PASS freeVarInsideEvalAndWith({}, "var x = 10; (function (){return x;})")()() == 10 is true
PASS localVarInsideEvalAndWith({}, "true") is true
PASS localVarInsideEvalAndWith({}, "false") is false
PASS localVarInsideEvalAndWith({}, "var x = true; x") is true
PASS localVarInsideEvalAndWith({}, "var x = 10; (function (){return x;})")() == 10 is true
PASS localVarInsideEvalAndWith(y={x:false}, "var x = true; x && y.x") is true
PASS successfullyParsed is true

TEST COMPLETE

