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 5cf78e8..6e64c3d 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
@@ -966,6 +966,76 @@
 				
 			 );
 		}		
+		public void test099a() {
+			// BUG278904
+			CompilationUnitDeclaration declaration = this.runInferTest(
+				"function MyType(){}"+
+				"MyType.prototype = new Object();\n"+
+				"/**\n"+
+				"  * Property length\n"+
+				"  * @type    Number\n"+
+				"  * @memberOf   MyType\n"+
+				"  * @see     MyType\n"+
+				"  * @since   WTP 3.2.2\n"+
+				" */\n"+  
+				"MyType.prototype.length = \"\";\n"+
+				"MyType.prototype.name = \"\";\n",
+				"X.js",
+				"class MyType extends Object{\n  Number length;\n  String name;\n  MyType()\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}		
+		public void test099b() {
+			// BUG278904
+			CompilationUnitDeclaration declaration = this.runInferTest(
+				"function MyType(){}"+
+				"MyType.prototype = new Object();\n"+
+				"/**\n"+
+				"  * Property length\n"+
+				"  * @type    Number\n"+
+				"  * @memberOf   MyType\n"+
+				"  * @see     MyType\n"+
+				"  * @since   WTP 3.2.2\n"+
+				" */\n"+  
+				"MyType.prototype.length = \"\";\n"+
+				"MyType.prototype.name = \"\";\n"+
+				"MyType.prototype.date = new Date();\n",
+				"X.js",
+				"class MyType extends Object{\n  Number length;\n  String name;\n  Date date;\n  MyType()\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}		
+		public void test099c() {
+			// BUG278904
+			CompilationUnitDeclaration declaration = this.runInferTest(
+				"function MyType(){}"+
+				"MyType.prototype = new Object();\n"+
+				"/**\n"+
+				"  * Property length\n"+
+				"  * @type    String\n"+
+				"  * @memberOf   MyType\n"+
+				"  * @see     MyType\n"+
+				"  * @since   WTP 3.2.2\n"+
+				" */\n"+  
+				"MyType.prototype.time = 1;\n"+
+				"/**\n"+
+				"  * Property length\n"+
+				"  * @type    Number\n"+
+				"  * @memberOf   MyType\n"+
+				"  * @see     MyType\n"+
+				"  * @since   WTP 3.2.2\n"+
+				" */\n"+  
+				"MyType.prototype.length = \"\";\n"+
+				"MyType.prototype.name = \"\";\n"+
+				"MyType.prototype.date = new Date();\n",
+				"X.js",
+				"class MyType extends Object{\n  String time;\n  Number length;\n  String name;\n  Date date;\n  MyType()\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}		
 		public void test100() {
 			// BUG278904
 			CompilationUnitDeclaration declaration = this.runInferTest(
@@ -1019,4 +1089,28 @@
 				
 			 );
 		}		
+		public void test103() {
+			CompilationUnitDeclaration declaration = this.runInferTest(
+				"MyTypeInner = {\n"+
+				"/**\n"+
+				"  * @memberOf   MyTypeInner\n"+
+				" */\n"+  
+				"length: 5\n"+
+				"};\n"+
+				"MyType = {\n"+
+				"/**\n"+
+				"  * Property events\n"+
+				"  * @memberOf   MyType\n"+
+				"  * @see     MyType\n"+
+				"  * @type    MyTypeInner\n"+
+				"  * @since   WTP 3.2.2\n"+
+				" */\n"+  
+				"events : \"\"\n"+
+				"};",
+				"X.js",
+				"class MyTypeInner extends Object{\n  Number length;\n}\nclass MyType extends Object{\n  MyTypeInner events;\n}\n",
+				getDefaultOptions()
+				
+			 );
+		}
 }
