code: private void tryToEliminateTheScope()
    {
      for( int i = 0; i < _statements.length; i++ )
      {
        Statement statement = _statements[i];
        if( statement instanceof VarStatement ||
            (!(statement instanceof StatementList) &&
             statement.getContainedParsedElementsByType( EvalExpression.class, null )) )
        {
          return;
        }
      }
      setNoScope();
    }
docs: A statement-list needs to push a new scope on the symbol table to provide
  a for local variable scoping. Since this is a relatively expensive
  operation we avoid pushing the scope if we know none of the statements
  declare variables.