Further to the previous bug report, I noticed that lexical variables are being renamed unnecessarily in this case:
(ps (let ((x (@ foo x))) (blah x))) => "var x2 = foo.x; blah(x2);"
Here the generated code isn't incorrect, as in the bug with CREATE, but I wonder if the two problems aren't related: in each case, PS appears to mistake a symbol reference for a lexical variable reference.
On Fri, Oct 9, 2009 at 2:00 PM, Daniel Gackle danielgackle@gmail.comwrote:
In this example, the CREATE form is being expanded incorrectly, because the symbol A passed to it is not a reference to either of the lexical variables in scope.
(ps (let ((a 99)) (let ((a 22)) (create a 33))))
=>
"var a = 99; var a666 = 22; { a666 : 33 };"