class Pry::Command::Exit

def process

def process
  if pry_instance.binding_stack.one?
    pry_instance.run_command "exit-all #{arg_string}"
  else
    # otherwise just pop a binding and return user supplied value
    process_pop_and_return
  end
end

def process_pop_and_return

def process_pop_and_return
  popped_object = pry_instance.binding_stack.pop.eval('self')
  # return a user-specified value if given otherwise return the object
  return target.eval(arg_string) unless arg_string.empty?
  popped_object
end