aboutsummaryrefslogtreecommitdiff
path: root/clojurescript/tojs.clj
diff options
context:
space:
mode:
authorChouser <chouser@n01se.net>2008-10-21 04:44:44 +0000
committerChouser <chouser@n01se.net>2008-10-21 04:44:44 +0000
commit99000024fbb67ecdf9b45991840e0cd25a63d8f7 (patch)
tree1cb70422d2b387145812d1d8a5ae5e629fa1d223 /clojurescript/tojs.clj
parent94ca536b4e901c9ee0bc7bcc2662e86a7803fbbf (diff)
ClojureScript: remove set-prop in favor of (set! prop val), plus some bug fixes.
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)]