*** empty log message ***
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java
new file mode 100644
index 0000000..6744783
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/BasicInterpretTest.java
@@ -0,0 +1,67 @@
+package org.eclipse.wst.jsdt.core.tests.interpret;
+
+public class BasicInterpretTest extends InterpretTest {
+
+	public BasicInterpretTest(String name) {
+		super(name);
+	}
+
+	
+	public void test0001() {
+		interpetTest("1+2","3");
+	}
+
+	public void test0002() {
+		interpetTest("a=10","a","10");
+	}
+
+	public void test0003() {
+		interpetTest("a=10;b=a+11;","b","21");
+	}
+	
+	public void test0004() {
+		interpetTest("a={p:21}; b=a.p;","b","21");
+	}
+
+	public void test0005() {
+		interpetTest("a = new Object(); a.hasProperty(\"c\");","false");
+	}
+	
+	public void test0005a() {
+		interpetTest("a = new Object(); a.c=1; a.hasProperty('c');","true");
+	}
+	
+	public void test0007() {
+		interpetTest("function box(w,h){this.width=w;this.height=h;}"+
+				"box.prototype.area=function (){return this.width*this.height;}"+
+				"b=new box(3,4); b.area();"
+				,"12");
+	}
+
+	public void test0008() {
+		interpetTest("var i=1;"+
+				"if (i>0) i=3;"
+				,"i","3");
+	}
+
+	public void test0008b() {
+		interpetTest("var i=1;"+
+				"if (i>1) i=3;"
+				,"i","1");
+	}
+
+
+	public void test0009() {
+		interpetTest("var i=1;"+
+				"while (i<3) i++;"
+				,"i","3");
+	}
+
+	public void test0009a() {
+		interpetTest("var i=1;"+
+				"while (i<3) {i++; if (i==2) break;}"
+				,"i","2");
+	}
+
+
+}
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java
new file mode 100644
index 0000000..3da11f5
--- /dev/null
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/interpret/InterpretTest.java
@@ -0,0 +1,55 @@
+package org.eclipse.wst.jsdt.core.tests.interpret;
+
+import org.eclipse.wst.jsdt.core.tests.junit.extension.StopableTestCase;
+import org.eclipse.wst.jsdt.core.tests.util.AbstractCompilerTest;
+import org.eclipse.wst.jsdt.internal.core.interpret.Interpreter;
+import org.eclipse.wst.jsdt.internal.core.interpret.InterpreterContext;
+import org.eclipse.wst.jsdt.internal.core.interpret.InterpreterResult;
+import org.eclipse.wst.jsdt.internal.core.interpret.Value;
+
+public class InterpretTest extends AbstractCompilerTest implements
+		StopableTestCase {
+
+	
+	InterpreterResult result;
+	
+	public InterpretTest(String name) {
+		super(name);
+	}
+
+	public void stop() {
+
+	}
+
+	public void interpetTest(String source, String expected)
+	{
+		
+		InterpreterContext context= new InterpreterContext();
+		context.initailizeBuiltins();
+		
+		result=Interpreter.interpet(source, context);
+		Object res=result.getResult();
+		if (res instanceof Value)
+			res=((Value)res).stringValue();
+		assertTrue("Result has errors", !result.hasErrors());
+		assertEquals("Unexpected result",expected, res.toString());
+		
+
+	}
+	
+	public void interpetTest(String source, String varName, String expected)
+	{
+		
+		InterpreterContext context= new InterpreterContext();
+		
+		result=Interpreter.interpet(source, context);
+		
+		assertTrue("Result has errors", !result.hasErrors());
+		Value value =context.getValue(varName.toCharArray());
+		assertTrue("var not found: "+varName, value!=null);
+		assertEquals("Unexpected result",expected, value.stringValue() );
+		
+
+	}
+
+}