[builtin/eval] Set/restore new vars rather than pushing a new frame (#2047)