I have found that my code is much easier to maintain when I separate my client-side JavaScript from my server-side logic. Now I write my scripts such that my server-side processing emits initialization variables.
Example – Server Side:
<?php echo 'var mynamespace = {}; mynamespace.jsvar = "' . $var . '";'; ?>
And in my client-side javascript:
var mynamespace = window['mynamespace'] || {};
function MyFunction() {
alert(mynamespace['jsvar']);
}
MyFunction();
Using this style, my client-side javascript compiles easily with Closure-compiler.