Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I set the language_in option for the Closure compiler?

I need to set the language_in option on the Closure compiler to prevent the IE8 parse error:

ERROR - Parse error. IE8 (and below) will parse trailing commas in array and object literals incorrectly. If you are targeting newer versions of JS, set the appropriate language_in option.

I did find a post in the closure group relating to this, however, the option is set directly on the java compiler, rather than through one of the build scripts. I need to be able to set it on a build script.

I'm looking at the scripts in closure/bin/build/ and there are several there. I tried adding the option to closure builder, but it failed.

Can someone direct me about how to set this option correctly?

Thank you.

like image 979
Elisabeth Avatar asked Nov 06 '12 23:11

Elisabeth


People also ask

Which of the following are the three compilation levels that can be applied to the JavaScript code to define the degree of compression and optimization required?

The value of this parameter indicates the degree of compression and optimization to apply to your JavaScript. There are three possible compilation levels: WHITESPACE_ONLY , SIMPLE_OPTIMIZATIONS , and ADVANCED_OPTIMIZATIONS .


1 Answers

Run the Closure Compiler Application with the --help flag to see a description of each flag.

java -jar compiler.jar --help

CommandLineRunner defines the set of allowed values for --language_in:

--language_in
Sets what language spec that input sources conform.
Options: ECMASCRIPT3, ECMASCRIPT5, ECMASCRIPT5_STRICT, ECMASCRIPT6_TYPED (experimental), ECMASCRIPT_2015, ECMASCRIPT_2016, ECMASCRIPT_2017, ECMASCRIPT_NEXT

The LanguageMode enum has a bit more detail about these values.

Using Closure Builder, the --language_in flag would be passed as an argument to
--compiler_flags as in:

--compiler_flags="--language_in=ECMASCRIPT5"
like image 137
Christopher Peisert Avatar answered Sep 24 '22 13:09

Christopher Peisert