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 1717 clojure.browser.repl
1818 (:require [goog.dom :as gdom]
1919 [goog.object :as gobj]
20+ [goog.array :as garray]
2021 [goog.userAgent.product :as product]
21- [clojure.browser.net :as net]
22+ [clojure.browser.net :as net]
2223 [clojure.browser.event :as event]
2324 ; ; repl-connection callback will receive goog.require('cljs.repl')
2425 ; ; and monkey-patched require expects to be able to derive it
2728 [cljs.repl]))
2829
2930(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))
3037
3138(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 )
3446
3547(defn get-ua-product []
3648 (cond
Original file line number Diff line number Diff line change 143143 (cljsc/-compile
144144 '[(set! *print-fn* clojure.browser.repl/repl-print)
145145 (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))] {})
147150 identity))
148151
149152(defn add-in-order [{:keys [expecting fns]} order f]
You can’t perform that action at this time.
0 commit comments