diff options
-rw-r--r-- | src/boot.clj | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/boot.clj b/src/boot.clj index 977e9c7e..a395590d 100644 --- a/src/boot.clj +++ b/src/boot.clj @@ -827,11 +827,12 @@ (recur (conj (conj ret `(var ~(first vvs))) (second vvs)) (rest (rest vvs))) (seq ret))))] - `(try - (. clojure.lang.Var (pushThreadBindings (hash-map ~@(var-ize bindings)))) - ~@body - (finally - (. clojure.lang.Var (popThreadBindings)))))) + `(do + (. clojure.lang.Var (pushThreadBindings (hash-map ~@(var-ize bindings)))) + (try + ~@body + (finally + (. clojure.lang.Var (popThreadBindings))))))) (defn find-var "Returns the global var named by the namespace-qualified symbol, or @@ -1802,8 +1803,8 @@ not-every? (comp not every?)) [name-vals-vec & body] `(let [~@(interleave (take-nth 2 name-vals-vec) (repeat '(. clojure.lang.Var (create))))] + (. clojure.lang.Var (pushThreadBindings (hash-map ~@name-vals-vec))) (try - (. clojure.lang.Var (pushThreadBindings (hash-map ~@name-vals-vec))) ~@body (finally (. clojure.lang.Var (popThreadBindings)))))) |