                          {:type :fail, :message ~msg,
                           :expected '~form, :actual e#}))]
            (if (:return env'#)
-             env'#
+             (assoc env'# :last-value e#)
              e#))))))
 
 (defmacro try-expr

                   {:type :fail, :message ~msg,
                    :expected '~form, :actual value#}))]
     (if (:return env'#)
       env'#
       value#)))

;; =============================================================================

(defmacro testing
  "Adds a new string to the list of testing contexts.  May be nested,
  but must occur inside a test function (deftest)."
  ([string & body]
   (if (contains? (:locals &env) 'cljs$lang$test$body)
     `(fn [env#]
        (reduce #(%2 %1)
          (update-in env# [:testing-contexts] conj ~string)
          [~@body]))
     `(:last-value
       (reduce #(%2 %1)
         (update-in (assoc (cljs.test/empty-env) :return true)
           [:testing-contexts] conj ~string)
         (let [~'cljs$lang$test$body nil]
           [~@body]))))))

;; =============================================================================
;; Defining Tests
