Fixed unparenthesized comma-sequences in for(;;) variable initializer expressions inside blocks.
E. g.
(ps (lambda (y)
(for ((x (let ((x0 (foo y)))
(bar x0))))
() ()
(xyzzy x))))
was producing
(function (y) {
var x0;
for (var x = x0 = foo(y), bar(x0); ; ) {
xyzzy(x);
};
});
A JavaScript parser would then treat the comma as the separator in
VariableDeclarationListNoIn production, so bar(x0) would be occuring
in the position of an Identifier, which is a syntax error (see
ECMA-262 ed. 5.1, ss. 12.6.3, 12.2).