issue regarding trailing commas in JavaScript
Solution 1
A trailing comma is a comma that follows the final element in an array or object literal. So like this:
['a', 'b', 'c',] // with trailing comma
['a', 'b', 'c'] // without trailing comma
In this case, the trailing comma follows the last element in your object literal:
color : jqTextareaDiv.css("color"),
If you remove it, the expected behaviour will occur. With it there, IE<9 won't like it.
Solution 2
This is the trailing comma:
color : jqTextareaDiv.css("color"), <<--
Solution 3
You have a trailing comma in color : jqTextareaDiv.css("color"),
. That would be the first warning. The second warning is probably a similar definition somewhere else in your code.
Andrei Oniga
Striving to become one of the best, one step at a time.
Updated on June 15, 2022Comments
-
Andrei Oniga about 2 years
Possible Duplicate:
Internet Explorer, Closure Compiler and Trailing CommasI've tried compressing my javascript code using the Closure Compiler and the compilation of the code generated these two errors:
JSC_TRAILING_COMMA: 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. at line 379 character 0 fontFamily : jqTextareaDiv.css("font-family").replace(/["']{1}/gi,""),
JSC_TRAILING_COMMA: 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. at line 932 character 0 fontFamily : jqDiv.css("font-family"),
These two errros seem to refer to this code:
var jqTextareaDiv = obj.target.parent().parent(), style = { // the current, relevant style rules for the DIV nesting the textarea fontFamily : jqTextareaDiv.css("font-family").replace(/["']{1}/gi,""), fontSize : jqTextareaDiv.css("font-size"), fontStyle : jqTextareaDiv.css("font-style"), fontWeight : jqTextareaDiv.css("font-weight"), textDecoration : jqTextareaDiv.css("text-decoration"), textAlign : jqTextareaDiv.css("text-align"), color : jqTextareaDiv.css("color"), }, jqToolbox = $('#text-edit-toolbox'), jqIndicators = { fontFamily : $('#font-family-indicator'), fontSize : $('#font-size-indicator'), fontStyle : $('#font-format-indicators .font-style'), fontWeight : $('#font-format-indicators .font-weight'), textDecorationUnderline : $('#font-format-indicators .underline'), textDecorationLineThrough : $('#font-format-indicators .line-through'), textAlignLeft : $('#text-alignment-indicators .align-left'), textAlignCenter : $('#text-alignment-indicators .align-center'), textAlignRight : $('#text-alignment-indicators .align-right'), textAlignJustify : $('#text-alignment-indicators .align-justify') };
Exactly which is the trailing comma in this case and how can I remove it without breaking the code?