When PS hoists the declaration of a variable, it should probably check for duplicates:
(ps (defun blah () (list (let ((foo 12)) (* foo 2)) (let ((foo 13)) (* foo 3)))))
=>
"function blah() { var foo; var foo; return [(foo = 12, foo * 2), (foo = 13, foo * 3)]; };"