 		assertNotNull(clone1.writableField);
 		assertEquals(clone1.writableField, classMarkedAsCloneable.writableField);
 	}
+
+	public function testCloneWithPropertyLevelMetadata():void {
+		const clone2:ClassWithSomeCloneableFields = Cloner.clone(
+				classWithSomeCloneableFields
+		) as ClassWithSomeCloneableFields;
+
+		assertNotNull(clone2);
+		assertNull(clone2.property1);
+		assertNotNull(clone2.property2);
+		assertEquals(clone2.property2, classWithSomeCloneableFields.property2);
+		assertNotNull(clone2.property3);
+		assertEquals(clone2.property3, classWithSomeCloneableFields.property3);
+		assertNotNull(clone2.writableField);
+		assertEquals(clone2.writableField, classWithSomeCloneableFields.writableField);
+	}
 }
 }
import org.as3commons.reflect.Type;
import org.flexunit.asserts.assertEquals;
import org.flexunit.asserts.assertNotNull;

use namespace dolly_internal;


	}

	[Test]
	public function testCloneWithClassLevelMetadata():void {
		const clone1:ClassMarkedAsCloneable = Cloner.clone(classMarkedAsCloneable) as ClassMarkedAsCloneable;

		assertNotNull(clone1);
