test updates
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..5360697
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/META-INF/MANIFEST.MF
@@ -0,0 +1,18 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.wst.jsdt.core.tests.compiler; singleton:=true
+Bundle-Version: 3.3.0.qualifier
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.wst.jsdt.core,
+ org.junit
+Export-Package: org.eclipse.wst.jsdt.core.tests.compiler.parser,
+ org.eclipse.wst.jsdt.core.tests.compiler.regression,
+ org.eclipse.wst.jsdt.core.tests.eval,
+ org.eclipse.wst.jsdt.core.tests.eval.target,
+ org.eclipse.wst.jsdt.core.tests.junit.extension,
+ org.eclipse.wst.jsdt.core.tests.runtime,
+ org.eclipse.wst.jsdt.core.tests.util
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.xml b/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.xml
index 5fb7b10..8b8bbbf 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.xml
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/plugin.xml
@@ -1,23 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.wst.jsdt.core.tests.compiler"
-   name="Parser Test Cases"
-   version="0.0.1"
-   provider-name="">
+<plugin>
 
-   <runtime>
-      <library name="jsdtcoretestscompiler.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-
-   <requires>
-      <import plugin="org.junit"/>
-     <import plugin="org.eclipse.core.runtime"/>
-     <import plugin="org.eclipse.core.resources"/>
-     <import plugin="org.eclipse.wst.jsdt.core"/>
-     <import plugin="org.eclipse.jdt.debug"/>    
-   </requires>
    
 </plugin>
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java
index 476d1f7..92352c0 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/parser/CompletionParserTest.java
@@ -8633,4 +8633,31 @@
 		expectedReplacedSource,
 		testName); 
 }
+
+public void testRECOVERY001() {
+	String str = 
+		"var foo;\n" + 
+		"if (f) {\n"; 
+
+	String testName = "<complete on name inside if>";
+	String completeBehind = "(f";
+	String expectedCompletionNodeToString = "<CompleteOnName:f>";
+	String completionIdentifier = "f";
+	String expectedReplacedSource = "f";
+	int cursorLocation = str.indexOf(completeBehind) + completeBehind.length() - 1;
+	String expectedUnitDisplayString =
+		"var foo;\n" + 
+		"if (<CompleteOnName:f>)\n" + 
+		"\n";
+
+	checkDietParse(
+		str.toCharArray(), 
+		cursorLocation, 
+		expectedCompletionNodeToString,
+		expectedUnitDisplayString,
+		completionIdentifier,
+		expectedReplacedSource,
+		testName); 
+}
+
 }
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
index 3cfd318..499d87f 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
@@ -435,6 +435,33 @@
 			 );
 		}
 		
+		public void test068b() {
+			CompilationUnitDeclaration declaration = this.runInferTest(
+					"var ns = {};"+ 
+					"ns.foo = function(){};" +
+					"function abc(){};" +
+					"ns.foo2 = abc;" +
+					"",
+				"X.js",
+				"class ___anonymous9_10 extends Object{\n  void foo()\n  void foo2()\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}
+		
+		public void test068c() {
+			CompilationUnitDeclaration declaration = this.runInferTest(
+					"var ns = {};"+ 
+					"ns.foo = function(){};" +
+					"ns.foo2 = ns.foo;" +
+					"",
+				"X.js",
+				"class ___anonymous9_10 extends Object{\n  void foo()\n  void foo2()\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}
+		
 		/**
 		 * namespaced type (new "class" nested inside an Object Literal)
 		 */
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF
index 71ef4c7..6b7fc54 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.jsdt.core.tests.model/META-INF/MANIFEST.MF
@@ -16,10 +16,10 @@
 Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)",
  org.junit;bundle-version="[3.8.1,4.0.0)",
- org.eclipse.wst.jsdt.core.tests.compiler;bundle-version="[0.0.1,4.0.0)",
+ org.eclipse.wst.jsdt.core.tests.compiler,
  org.eclipse.team.core;bundle-version="[3.2.0,4.0.0)",
  org.eclipse.text;bundle-version="[3.2.0,4.0.0)",
  com.ibm.icu;bundle-version="[3.4.4,4.0.0)",
- org.eclipse.wst.jsdt.core
+ org.eclipse.wst.jsdt.core  
 Eclipse-LazyStart: true
 Bundle-RequiredExecutionEnvironment: J2SE-1.4
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java
index 48c5415..da6a8a5 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.model/src/org/eclipse/wst/jsdt/core/tests/model/AbstractJavaModelTests.java
@@ -23,7 +23,7 @@
 import org.eclipse.wst.jsdt.core.*;
 import org.eclipse.wst.jsdt.core.compiler.CharOperation;
 import org.eclipse.wst.jsdt.core.compiler.IProblem;
-import org.eclipse.wst.jsdt.core.compiler.libraries.SystemLibraries;
+import org.eclipse.wst.jsdt.core.compiler.libraries.SystemLibraryLocation;
 import org.eclipse.wst.jsdt.core.dom.ASTNode;
 import org.eclipse.wst.jsdt.core.dom.CompilationUnit;
 import org.eclipse.wst.jsdt.core.search.*;
@@ -1375,16 +1375,28 @@
 	 * Returns the java.io path to the external java class library (e.g. jclMin.jar)
 	 */
 	protected String getExternalJCLPathString() {
-		return SystemLibraries.getLibraryPath("system.js");
+		return getSystemJsPath();
+//		return SystemLibraries.getLibraryPath("system.js");
 //		return getExternalJCLPathString("");
 	}
 	/**
 	 * Returns the java.io path to the external java class library (e.g. jclMin.jar)
 	 */
 	protected String getExternalJCLPathString(String compliance) {
-		return SystemLibraries.getLibraryPath("system.js");
+		return getSystemJsPath();
+//		return SystemLibraries.getLibraryPath("system.js");
 //		return getExternalPath() + "jclMin" + compliance + ".jar";
 	}
+	
+	private String getSystemJsPath()
+	{
+		IPath targetRoot =  (new Path(System.getProperty("user.dir"))).removeLastSegments(1);
+		IPath pluginDir = targetRoot.append(new Path("org.eclipse.wst.jsdt.core"));
+		IPath libDir = pluginDir.append(new Path(new String(SystemLibraryLocation.LIBRARY_PLUGIN_DIRECTORY)));
+		IPath fullDir = libDir.append(new Path(new String(SystemLibraryLocation.SYSTEM_LIBARAY_NAME)));
+		return	fullDir.toOSString();
+	}
+	
 	/**
 	 * Returns the IPath to the root source of the external java class library (e.g. "src")
 	 */