[340756] [validation] False syntax error in with (x) var y;

JUnit test cases are added for the issue.
JUnit test cases StatementRecoveryTest.test0011 and StatementRecoveryTest.test0013 are updated due regarding the new parser gramma.

Signed-off-by: vrubezhny <vrubezhny@exadel.com>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java
index d1b118a..2a299bf 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/StatementRecoveryTest.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2013 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -972,18 +972,12 @@
 
 	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
 		"function X() {\n" + 
-		"  function foo() {\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          foo();\n" + 
-		"        }\n" + 
-		"    for (; ; ) \n" + 
-		"      ;\n" + 
-		"    if (true)\n" + 
-		"        {\n" + 
-		"          foo();\n" + 
-		"        }\n" + 
-		"  }\n" + 
+		"}\n" + 
+		"function foo() {\n" + 
+		"  if (true)\n" + 
+		"      {\n" + 
+		"        foo();\n" + 
+		"      }\n" + 
 		"}\n";
 	
 	String expectedFullUnitToString =
@@ -1082,10 +1076,9 @@
 
 	String expectedDietPlusBodyWithStatementRecoveryUnitToString = 
 		"function X() {\n" + 
-		"  function foo() {\n" + 
-		"    for (var i in $missing$) \n" + 
-		"      ;\n" + 
-		"  }\n" + 
+		"}\n" +
+		"function foo() {\n" + 
+		"  var i;\n" + 
 		"}\n";
 	
 	String expectedFullUnitToString =
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
index ae47df5..fd723a9 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/BasicParserTests.java
@@ -488,6 +488,7 @@
 			"\n"
 		 );
 	}
+	
 	public void test009a() {	// for
 		this.runParseTest(
 				"for (;i<3;i++)\n" +
@@ -498,6 +499,16 @@
 			"\n"
 		 );
 	}
+	
+	public void test009b() {	// for
+		this.runParseTest(
+				"for (i=1;i<3;i++) var y\n" +
+				"\n",
+			"X.js",
+			"for (i = 1; (i < 3); i ++) \n  var y;"+	
+			"\n"
+		 );
+	}
 
 	public void test010() {	// for in
 		this.runParseTest(
@@ -509,19 +520,7 @@
 			"\n"
 		 );
 	}
-
-
-	public void test011() {	// for in
-		this.runParseTest(
-				"with (foo)\n" +
-				"  bar;" +
-				"\n",
-			"X.js",
-			"with (foo)\n"+	
-			"  bar;\n"
-		 );
-	}
-
+	
 	public void test010a() {	// for in
 		this.runParseTest(
 				"for (a in this.vars)\n" +
@@ -533,6 +532,53 @@
 		 );
 	}
 
+	public void test010b() {	// for in
+		this.runParseTest(
+				"for (var a in this.vars) var y\n" +
+				"\n",
+			"X.js",
+			"for (var a in this.vars) \n  var y;"+	
+			"\n"
+		 );
+	}
+	
+	public void test011() {	// with
+		this.runParseTest(
+				"with (foo)\n" +
+				"  bar;" +
+				"\n",
+			"X.js",
+			"with (foo)\n"+	
+			"  bar;\n"
+		 );
+	}
+
+	public void test011a() {	// with
+		this.runParseTest(
+				"with (foo) var bar\n",
+			"X.js",
+			"with (foo)\n" +
+			"  var bar;\n"
+		 );
+	}
+
+	public void test012() {	// while
+		this.runParseTest(
+				"while (foo)\n" +
+				"  bar;" +
+				"\n",
+			"X.js",
+			"while (foo)  bar;\n"
+		 );
+	}
+
+	public void test012a() {	// while
+		this.runParseTest(
+				"while (foo) var bar\n",
+			"X.js",
+			"while (foo)  var bar;\n"
+		 );
+	}
 
 	public void test015() {	// missing semicolon
 		this.runParseTest(
@@ -546,6 +592,8 @@
 		 );
 	}
 	
+	
+	
 	public void test015a() {	// missing semicolon
 		this.runParseTest(
 			"function bar() {\n"+