jjs> (function(o){ try{with(o){return x}}finally{return x} })({x: 1}) Expected: ReferenceError Actual: no error. When we "inline" finally block, we start using "x" inside the 'with' scope.