From 537788dbecc93ab17b78cd0ce0b24c6d540b11f8 Mon Sep 17 00:00:00 2001
From: Chew Theam Yong <chew.theam.yong@gmail.com>
Date: Fri, 14 May 2010 20:42:41 +1200
Subject: [PATCH] Operator precedence - fixed handling of nested lets.

---
 src/printer.lisp |    2 +-
 t/ps-tests.lisp  |    4 ++++
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/src/printer.lisp b/src/printer.lisp
index 8e1524d..811ded7 100644
--- a/src/printer.lisp
+++ b/src/printer.lisp
@@ -245,7 +245,7 @@ vice-versa.")
 (defprinter js:var (var-name &rest var-value)
   "var "(psw (symbol-to-js-string var-name))
   (when var-value
-    (psw " = ") (ps-print (car var-value))))
+    (psw " = ") (print-op-argument 'js:= (car var-value))))
 
 (defprinter js:label (label statement)
   (psw (symbol-to-js-string label))": "(ps-print statement))
diff --git a/t/ps-tests.lisp b/t/ps-tests.lisp
index 0c529d4..3f07c2b 100644
--- a/t/ps-tests.lisp
+++ b/t/ps-tests.lisp
@@ -1699,3 +1699,7 @@ x();")
   (+ (/ 1 (/ 2 3)) (- 1 (- 2 3)))
   "1 / (2 / 3) + 1 - (2 - 3);")
 
+(test-ps-js operator-expressions-nested-let
+  (let ((x (let ((y 1)) y))) x)
+  "var x = (y = 1, y); x;")
+
-- 
1.6.0.4

