File tree

2 files changed

+17
-6
lines changed

2 files changed

+17
-6
lines changed
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@
5555
(some #{(str name)} (ns-first-segments)) (inc d)
5656
:else d))))
5757

58+
(defn hash-scope [s]
59+
#?(:clj (System/identityHashCode s)
60+
:cljs (hash-combine (-hash ^not-native (:name s))
61+
(shadow-depth s))))
62+
5863
(declare munge)
5964

6065
(defn fn-self-name [{:keys [name info] :as name-var}]
@@ -86,8 +91,7 @@
8691
(fn-self-name s)
8792
;; Unshadowing
8893
(let [depth (shadow-depth s)
89-
code #?(:clj (System/identityHashCode s)
90-
:cljs (-hash ^not-native name))
94+
code (hash-scope s)
9195
renamed (get *lexical-renames* code)
9296
name (cond
9397
(true? field) (str "self__." name)
@@ -862,8 +866,7 @@
862866
(map
863867
(fn [binding]
864868
(let [name (:name binding)]
865-
(vector #?(:clj (System/identityHashCode binding)
866-
:cljs (-hash ^not-native name))
869+
(vector (hash-scope binding)
867870
(gensym (str name "-")))))
868871
bindings)))]
869872
(doseq [{:keys [init] :as binding} bindings]
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393

9494
(deftest test-eval-str
9595
(async done
96-
(let [l (latch 5 done)]
96+
(let [l (latch 6 done)]
9797
(cljs/eval-str st "(+ 1 1)" nil
9898
{:eval node-eval}
9999
(fn [{:keys [error value]}]
@@ -139,6 +139,14 @@
139139
(fn [{:keys [error value]}]
140140
(is (nil? error))
141141
(is (== 3 (js/cljs.user.foo 1 2)))
142+
(inc! l)))
143+
(cljs/eval-str st "(def foo (let [x 1] (let [x (inc x)] x)))" nil
144+
{:eval node-eval
145+
:context :statement
146+
:def-emits-var true}
147+
(fn [{:keys [error value]}]
148+
(is (nil? error))
149+
(is (== 2 js/cljs.user.foo))
142150
(inc! l))))))
143151

144152
#_(deftest test-eval-str-with-require
@@ -178,4 +186,4 @@
178186
(set! *main-cli-fn* -main)
179187

180188
(comment
181-
)
189+
)

0 commit comments

Comments
 (0)