formatter: fix when first array element is omitted
diff --git a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSTransformer.java b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSTransformer.java
index 970c07f..fcce6e4 100644
--- a/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSTransformer.java
+++ b/plugins/org.eclipse.dltk.javascript.parser/src/org/eclipse/dltk/javascript/parser/JSTransformer.java
@@ -1887,14 +1887,22 @@
 			final Tree item = child.getChild(0);
 			if (item != null) {
 				array.getItems().add(transformExpression(item, array));
+				if (i != itemCount - 1) {
+					final int nextComma = getTokenOffset(JSParser.COMMA,
+							child.getTokenStopIndex() + 1, node.getChild(i + 1)
+									.getTokenStartIndex());
+					array.getCommas().add(nextComma);
+				}
 			} else {
-				array.getItems().add(new EmptyExpression(getParent()));
-			}
-			if (i > 0) {
-				array.getCommas().add(
-						getTokenOffset(JSParser.COMMA, node.getChild(i - 1)
-								.getTokenStopIndex() + 1, child
-								.getTokenStartIndex()));
+				assert i != itemCount - 1;
+				final int nextComma = getTokenOffset(JSParser.COMMA,
+						child.getTokenStopIndex() + 1, node.getChild(i + 1)
+								.getTokenStartIndex());
+				final EmptyExpression empty = new EmptyExpression(array);
+				empty.setStart(nextComma);
+				empty.setEnd(nextComma);
+				array.getItems().add(empty);
+				array.getCommas().add(nextComma);
 			}
 		}
 		array.setRB(getTokenOffset(node.getChild(itemCount)
diff --git a/tests/org.eclipse.dltk.javascript.formatter.tests/scripts/arrays.js b/tests/org.eclipse.dltk.javascript.formatter.tests/scripts/arrays.js
index 5dfda2d..9bdca70 100644
--- a/tests/org.eclipse.dltk.javascript.formatter.tests/scripts/arrays.js
+++ b/tests/org.eclipse.dltk.javascript.formatter.tests/scripts/arrays.js
@@ -10,6 +10,10 @@
 var vArray  = [    1      ,2            ,,,    3            ]
 ==
 var vArray = [1, 2, , , 3]
+==== array-with-first-empty-element
+var  array =  [ , "" ] ;
+==
+var array = [, ""];
 ====
 ==> formatter.braces.array = next.line
 ==== array-brackets-next-line