diff -r dde8422fb5ae -r bf0a77f029c4 emul/src/main/java/java/lang/Class.java
--- a/emul/src/main/java/java/lang/Class.java Sat Dec 01 15:48:12 2012 +0100
+++ b/emul/src/main/java/java/lang/Class.java Sun Dec 02 12:26:14 2012 +0100
@@ -774,14 +774,28 @@
* @throws NullPointerException {@inheritDoc}
* @since 1.5
*/
+ @JavaScriptBody(args = { "self", "ac" },
+ body =
+ "if (self.anno) {"
+ + " return self.anno['L' + ac.jvmName + ';'];"
+ + "}"
+ )
+ private Object getAnnotationData(Class> annotationClass) {
+ throw new UnsupportedOperationException();
+ }
public A getAnnotation(Class annotationClass) {
- throw new UnsupportedOperationException();
+ Object data = getAnnotationData(annotationClass);
+ return data == null ? null : AnnotationImpl.create(annotationClass, data);
}
/**
* @throws NullPointerException {@inheritDoc}
* @since 1.5
*/
+ @JavaScriptBody(args = { "self", "ac" },
+ body = "if (self.anno && self.anno['L' + ac.jvmName + ';']) { return true; }"
+ + "else return false;"
+ )
public boolean isAnnotationPresent(
Class extends Annotation> annotationClass) {
if (annotationClass == null)