eval() should preserve stack in env properly; fix #2671