Skip to content

Commit a56d06a

Browse files
committed
xpc takes strings, serialize/parse to/from JSON
1 parent dc53376 commit a56d06a

1 file changed

Lines changed: 23 additions & 10 deletions

File tree

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

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@
3838

3939
(defn flush-print-queue! [conn]
4040
(doseq [str print-queue]
41-
(net/transmit conn :print str))
41+
(net/transmit conn :print
42+
(json/serialize
43+
#js {"repl" *repl*
44+
"str" str})))
4245
(garray/clear print-queue))
4346

4447
(defn repl-print [data]
@@ -137,14 +140,20 @@
137140

138141
(net/register-service repl-connection
139142
:send-result
140-
(fn [{:keys [repl result]}]
141-
(send-result connection url
142-
(wrap-message repl :result result))))
143+
(fn [json]
144+
(let [obj (json/parse json)
145+
repl (gobj/get obj "repl")
146+
result (gobj/get obj "result")]
147+
(send-result connection url
148+
(wrap-message repl :result result)))))
143149

144150
(net/register-service repl-connection
145151
:print
146-
(fn [data]
147-
(send-print url (wrap-message nil :print data)))))
152+
(fn [json]
153+
(let [obj (json/parse json)
154+
repl (gobj/get obj "repl")
155+
str (gobj/get obj "str")]
156+
(send-print url (wrap-message repl :print str))))))
148157
(js/alert "No 'xpc' param provided to child iframe.")))
149158

150159
(def load-queue nil)
@@ -233,13 +242,17 @@
233242
(net/register-service repl-connection
234243
:evaluate-javascript
235244
(fn [json]
236-
(let [obj (json/parse json)]
245+
(let [obj (json/parse json)
246+
repl (gobj/get obj "repl")
247+
form (gobj/get obj "form")]
237248
(net/transmit
238249
repl-connection
239250
:send-result
240-
{:repl (gobj/get obj "repl")
241-
:result (evaluate-javascript repl-connection
242-
(gobj/get obj "form"))}))))
251+
(json/serialize
252+
#js {"repl" repl
253+
"result"
254+
(binding [*repl* repl]
255+
(evaluate-javascript repl-connection form))})))))
243256
(net/connect repl-connection
244257
(constantly nil)
245258
(fn [iframe]

0 commit comments

Comments
 (0)