From 749608e2f4f9804f33812b194297201851343947 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 21 Mar 2017 23:22:21 -0400 Subject: - Now packaging the complete JS code. --- luxc/src/lux/compiler/js/base.clj | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'luxc/src/lux/compiler/js/base.clj') diff --git a/luxc/src/lux/compiler/js/base.clj b/luxc/src/lux/compiler/js/base.clj index 417b35d5a..7f560b87d 100644 --- a/luxc/src/lux/compiler/js/base.clj +++ b/luxc/src/lux/compiler/js/base.clj @@ -21,13 +21,16 @@ (deftuple ["interpreter" - "buffer"]) + "buffer" + "total-buffer"]) (defn js-host [] (&/$Js (&/T [;; "interpreter" (.getScriptEngine (new NashornScriptEngineFactory)) ;; "buffer" &/$None + ;; "total-buffer" + (new StringBuilder) ]))) (def ^String module-js-name "module.js") @@ -44,6 +47,10 @@ (&/$None) (&/fail-with-loc "[Error] No buffer available.")))) +(def get-total-buffer + (|do [host &/js-host] + (return (&/get$ $total-buffer host)))) + (defn run-js! [^String js-code] (|do [host &/js-host :let [interpreter ^NashornScriptEngine (&/get$ $interpreter host)]] @@ -216,12 +223,15 @@ (|do [eval? &/get-eval module &/get-module-name ^StringBuilder buffer get-buffer + ^StringBuilder total-buffer get-total-buffer + :let [buffer-code (.toString buffer) + _ (.append total-buffer ^String (str buffer-code "\n"))] :let [_ (when (not eval?) (let [^String module* (&host/->module-class module) module-dir (str @&&/!output-dir java.io.File/separator (.replace module* "/" java.io.File/separator))] (do (.mkdirs (File. module-dir)) (&&/write-file (str module-dir java.io.File/separator module-js-name) - (.getBytes (.toString buffer))))))]] + (.getBytes buffer-code)))))]] (return nil))) (defn js-module [module] -- cgit v1.2.3