Skip to content

Commit dc53376

Browse files
committed
roundtrip repl name for evals
1 parent bfa599f commit dc53376

1 file changed

Lines changed: 17 additions & 12 deletions

File tree

src/main/cljs/clojure/browser/repl.cljs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
(goog-define HOST "localhost")
3232
(goog-define PORT 9000)
3333

34+
(def ^:dynamic *repl* nil)
3435
(def xpc-connection (atom nil))
3536
(def parent-connected? (atom false))
3637
(def print-queue (array))
@@ -92,8 +93,12 @@
9293

9394
(def order (atom 0))
9495

95-
(defn wrap-message [t data]
96-
(pr-str {:type t :content data :order (swap! order inc)}))
96+
(defn wrap-message [repl t data]
97+
(pr-str
98+
{:repl repl
99+
:type t
100+
:content data
101+
:order (swap! order inc)}))
97102

98103
(defn start-evaluator
99104
"Start the REPL server connection."
@@ -110,8 +115,7 @@
110115
;; ack once.
111116
(js/setTimeout try-handshake
112117
10)))]
113-
(net/connect repl-connection
114-
try-handshake)
118+
(net/connect repl-connection try-handshake)
115119

116120
(net/register-service repl-connection
117121
:ack-handshake
@@ -121,27 +125,26 @@
121125
;; Now that we're connected to the parent, we can start talking to
122126
;; the server.
123127
(send-result connection
124-
url
125-
(wrap-message :ready "ready")))))
128+
url (wrap-message nil :ready "ready")))))
126129

127130
(event/listen connection
128131
:success
129132
(fn [e]
130133
(net/transmit
131134
repl-connection
132135
:evaluate-javascript
133-
(.getResponseText (.-currentTarget e)
134-
()))))
136+
(.getResponseText (.-currentTarget e) ()))))
135137

136138
(net/register-service repl-connection
137139
:send-result
138-
(fn [data]
139-
(send-result connection url (wrap-message :result data))))
140+
(fn [{:keys [repl result]}]
141+
(send-result connection url
142+
(wrap-message repl :result result))))
140143

141144
(net/register-service repl-connection
142145
:print
143146
(fn [data]
144-
(send-print url (wrap-message :print data)))))
147+
(send-print url (wrap-message nil :print data)))))
145148
(js/alert "No 'xpc' param provided to child iframe.")))
146149

147150
(def load-queue nil)
@@ -234,7 +237,9 @@
234237
(net/transmit
235238
repl-connection
236239
:send-result
237-
(evaluate-javascript repl-connection (gobj/get obj "form"))))))
240+
{:repl (gobj/get obj "repl")
241+
:result (evaluate-javascript repl-connection
242+
(gobj/get obj "form"))}))))
238243
(net/connect repl-connection
239244
(constantly nil)
240245
(fn [iframe]

0 commit comments

Comments
 (0)