diff options
author | Eduardo Julian | 2017-02-26 20:17:23 -0400 |
---|---|---|
committer | Eduardo Julian | 2017-02-26 20:17:23 -0400 |
commit | 2f77d20394274e89da509716b4cf78fba9724e46 (patch) | |
tree | 323f1da5f3c7702c2498a35319c2cd99796b6669 /luxc/src/lux/compiler/js/rt.clj | |
parent | 79c10caf4c7e370dc53c4c60c57cc16ccec48773 (diff) |
- Added try-catch procedure to JS backend.
Diffstat (limited to '')
-rw-r--r-- | luxc/src/lux/compiler/js/rt.clj | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/luxc/src/lux/compiler/js/rt.clj b/luxc/src/lux/compiler/js/rt.clj index 2416445e5..e6a50b373 100644 --- a/luxc/src/lux/compiler/js/rt.clj +++ b/luxc/src/lux/compiler/js/rt.clj @@ -1375,11 +1375,23 @@ "})") })) +(def ^:private lux-methods + {"runTry" (str "(function runTry(op) {" + (str "try {" + (str "return [1,'',op(null)];") + "}" + "catch(ex) {" + (str "return [0,null,ex.toString()];") + "}") + "})") + }) + (def LuxRT "LuxRT") (def compile-LuxRT (|do [_ (&&/run-js! "var console = { log: print };") - :let [rt-object (str "{" (->> (merge adt-methods + :let [rt-object (str "{" (->> (merge lux-methods + adt-methods i64-methods n64-methods text-methods |