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)];
};"