I'm using html5boilerplate build script and when minifying the scripts (which uses Google Closure Compiler)
I'm getting this error
-js.all.minify:
[echo] Minifying scripts
[copy] Copying 3 files to /Users/Username/Desktop/Web/intermediate/js
[apply] /Users/Juan/Desktop/Web/js/plugins.js:117: ERROR - Parse error. Internet Explorer has a non-standard intepretation of trailing commas. Arrays will have the wrong length and objects will not parse at all.
[apply] }, { duration: 727 })
[apply]
^
But the code DOES work in IE 8 if run uncompiled.
This is the code
anim1.animate({
'left': '+=32px',
'filter': 'alpha(opacity=100)',
'-moz-opacity': '1',
'-khtml-opacity': '1',
'opacity': '1',
}, { duration: 727 })
How can I make this code pass Compulsure Compiler?
Thanks
Remove the superfluous last comma from your object literal:
anim1.animate({
'left': '+=32px',
'filter': 'alpha(opacity=100)',
'-moz-opacity': '1',
'-khtml-opacity': '1',
'opacity': '1' // <-- No comma here.
}, { duration: 727 }); // <-- I'd also suggest a semicolon there.
As the Closure compiler says, literals with such trailing commas cannot be parsed by some browsers.
Or enable EcmaScript 5 mode. Ecmascript 5 does standardize the trailing comma behavior but IE8 does not fully support it ES5 (neither does IE9 which is missing strict mode).
来源:https://stackoverflow.com/questions/11823162/internet-explorer-closure-compiler-and-trailing-commas