Bug 309217 - Rhino debugger implementation is in an API package
-also adding Debug support to JUnit support in e4
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
index 17524aa..5d92770 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/META-INF/MANIFEST.MF
@@ -5,5 +5,6 @@
 Bundle-Version: 1.0.0.qualifier
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
 Import-Package: junit.framework,
+ org.eclipse.wst.jsdt.debug.rhino.debugger;resolution:=optional,
  org.mozilla.javascript
 Export-Package: org.eclipse.e4.languages.javascript.junit
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java
new file mode 100644
index 0000000..5eb7257
--- /dev/null
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/internal/languages/javascript/junit/DebugUtil.java
@@ -0,0 +1,18 @@
+package org.eclipse.e4.internal.languages.javascript.junit;
+
+import org.eclipse.wst.jsdt.debug.rhino.debugger.RhinoDebugger;
+import org.mozilla.javascript.ContextFactory;
+
+public class DebugUtil {
+
+	public static void debug(String rhinoDebug) {
+		RhinoDebugger debugger = new RhinoDebugger(rhinoDebug);
+		try {
+			debugger.start();
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+		ContextFactory.getGlobal().addListener(debugger);
+	}
+
+}
diff --git a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
index b2d6e62..fe8cb00 100644
--- a/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
+++ b/bundles/org.eclipse.e4.languages.javascript.junit/src/org/eclipse/e4/languages/javascript/junit/JavaScriptTestCase.java
@@ -25,6 +25,7 @@
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
+import org.eclipse.e4.internal.languages.javascript.junit.DebugUtil;
 import org.mozilla.javascript.BaseFunction;
 import org.mozilla.javascript.Context;
 import org.mozilla.javascript.Scriptable;
@@ -41,6 +42,19 @@
 	private ClassLoader originalApplicationClassLoader;
 	private boolean superRunTest = false;
 	private static URL ASSERT_SCRIPT = JavaScriptTestCase.class.getResource("assert.js");
+	
+	static {
+		String rhinoDebug = System.getProperty("rhino.debug"); 
+		if ( rhinoDebug != null) {
+			Class<?> c = null;
+			try {
+				Class.forName("org.eclipse.wst.jsdt.debug.rhino.debugger.RhinoDebugger"); //$NON-NLS-1$
+				DebugUtil.debug(rhinoDebug);
+			} catch (ClassNotFoundException e) {
+			}
+		}
+	}
+	
 
 	public JavaScriptTestCase() {
 		this(null, null, null, null);