I'll use SETF to force PS to interpret the right-hand side as an expression. These are correct:

(ps (setf x (let ((a 1)) a)))
=>
"x = (a6872 = 1, a6872);"

(ps (setf x (unless (null a) (1+ a))))
=>
"x = a != null ? a + 1 : null;"

But this is wrong:

(ps (setf x (let ((a (foo)))
                        (unless (null a)
                          (1+ a)))))
=>
"x = (a6874 = foo(), if (a6874 != null) {
    a6874 + 1;
});"

Daniel