From 98b786648c52972d3f0db638e6de5cb0431777b8 Mon Sep 17 00:00:00 2001
From: Chew Theam Yong <chew.theam.yong@gmail.com>
Date: Fri, 14 May 2010 20:44:15 +1200
Subject: [PATCH] Operator precedence - fixed parenthesizing for comma in arrays.

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

diff --git a/src/printer.lisp b/src/printer.lisp
index 811ded7..072da97 100644
--- a/src/printer.lisp
+++ b/src/printer.lisp
@@ -180,7 +180,8 @@ vice-versa.")
 
 (defun print-comma-delimited-list (ps-forms)
   (loop for (form . remaining) on ps-forms do
-        (ps-print form) (when remaining (psw ", "))))
+        (print-op-argument 'js:|,| form)
+        (when remaining (psw ", "))))
 
 (defprinter js:array (&rest initial-contents)
   "["(print-comma-delimited-list initial-contents)"]")
diff --git a/t/ps-tests.lisp b/t/ps-tests.lisp
index 3f07c2b..f49ab1f 100644
--- a/t/ps-tests.lisp
+++ b/t/ps-tests.lisp
@@ -1703,3 +1703,6 @@ x();")
   (let ((x (let ((y 1)) y))) x)
   "var x = (y = 1, y); x;")
 
+(test-ps-js operator-expressions-array-nested-let
+            (list (let ((y 1)) y) 2)
+            "[(y = 1, y), 2];")
-- 
1.6.0.4

