aboutsummaryrefslogtreecommitdiff
path: root/clojurescript/tojs.clj
diff options
context:
space:
mode:
Diffstat (limited to 'clojurescript/tojs.clj')
-rw-r--r--clojurescript/tojs.clj8
1 files changed, 6 insertions, 2 deletions
diff --git a/clojurescript/tojs.clj b/clojurescript/tojs.clj
index a46b0e28..9769951a 100644
--- a/clojurescript/tojs.clj
+++ b/clojurescript/tojs.clj
@@ -166,8 +166,12 @@
(str vns "._var_" vname)))
(defmethod tojs clojure.lang.Compiler$AssignExpr [e ctx]
- (let [[vns vname] (var-parts (.target e))]
- (str vns "._var_" vname ".set(" (tojs (.val e) ctx) ")")))
+ (let [target (.target e)]
+ (if (instance? clojure.lang.Compiler$InstanceFieldExpr target)
+ (vstr ["(" (tojs (.target target) ctx) "."
+ (var-munge (.fieldName target)) "=" (tojs (.val e) ctx) ")"])
+ (let [[vns vname] (var-parts target)]
+ (str vns "._var_" vname ".set(" (tojs (.val e) ctx) ")")))))
(defmethod tojs clojure.lang.Compiler$DefExpr [e ctx]
(let [[vns vname] (var-parts e)]