The following bug in PS broke my code today:

  (ps (aref (if (and x (> (length x) 0))
              (aref x 0)
              y)
              z))
  => "x && x.length > 0 ? x[0] : y[z];"

Obviously, this should be:

  (x && x.length > 0 ? x[0] : y)[z]

You can see a similar bug here:

  (ps (aref (or (slot-value x 'y)
              (slot-value a 'b))
              z))
  => "x.y || a.b[z];"

and here again:

  (ps (- (if x y z)))
  => "-x ? y : z;"

Clearly, there's a problem with not parenthesizing things.

Since the last patch or two I've sent have been ignored, I won't send a new one here, but rather ask: is PS being actively maintained or not? This project is too valuable to let fade.

Dan