File tree Expand file tree Collapse file tree 2 files changed +19
-4
lines changed Expand file tree Collapse file tree 2 files changed +19
-4
lines changed Original file line number Diff line number Diff line change 17
17
clojure.browser.repl
18
18
(:require [goog.dom :as gdom]
19
19
[goog.object :as gobj]
20
+ [goog.array :as garray]
20
21
[goog.userAgent.product :as product]
21
- [clojure.browser.net :as net]
22
+ [clojure.browser.net :as net]
22
23
[clojure.browser.event :as event]
23
24
; ; repl-connection callback will receive goog.require('cljs.repl')
24
25
; ; and monkey-patched require expects to be able to derive it
27
28
[cljs.repl]))
28
29
29
30
(def xpc-connection (atom nil ))
31
+ (def print-queue (array ))
32
+
33
+ (defn flush-print-queue! [conn]
34
+ (doseq [str print-queue]
35
+ (net/transmit conn :print str))
36
+ (garray/clear print-queue))
30
37
31
38
(defn repl-print [data]
32
- (if-let [conn @xpc-connection]
33
- (net/transmit conn :print (pr-str data))))
39
+ (.push print-queue (pr-str data))
40
+ (when-let [conn @xpc-connection]
41
+ (flush-print-queue! conn)))
42
+
43
+ (set! *print-fn* repl-print)
44
+ (set! *print-err-fn* repl-print)
45
+ (set! *print-newline* true )
34
46
35
47
(defn get-ua-product []
36
48
(cond
Original file line number Diff line number Diff line change 143
143
(cljsc/-compile
144
144
'[(set! *print-fn* clojure.browser.repl/repl-print)
145
145
(set! *print-err-fn* clojure.browser.repl/repl-print)
146
- (set! *print-newline* true )] {})
146
+ (set! *print-newline* true )
147
+ (when (pos? (count clojure.browser.repl/print-queue))
148
+ (clojure.browser.repl/flush-print-queue!
149
+ @clojure.browser.repl/xpc-connection))] {})
147
150
identity))
148
151
149
152
(defn add-in-order [{:keys [expecting fns]} order f]
You can’t perform that action at this time.
0 commit comments