1.1 --- a/emul/src/main/java/java/lang/AnnotationImpl.java Tue Dec 04 12:23:06 2012 +0100
1.2 +++ b/emul/src/main/java/java/lang/AnnotationImpl.java Tue Dec 04 12:44:33 2012 +0100
1.3 @@ -16,12 +16,20 @@
1.4 return getClass();
1.5 }
1.6
1.7 - @JavaScriptBody(args = { "a", "n", "values" }, body =
1.8 - "var v = values;"
1.9 - + "for (p in values) {"
1.10 - + " a[p] = function() { return v[p]; }"
1.11 - + "}"
1.12 - + "a['$instOf_' + n] = true;"
1.13 + @JavaScriptBody(args = { "a", "n", "values" }, body = ""
1.14 + + "function f(v, p) {\n"
1.15 + + " var val = v;\n"
1.16 + + " var prop = p;\n"
1.17 + + " return function() {\n"
1.18 + + " return val[prop];\n"
1.19 + + " };\n"
1.20 + + "}\n"
1.21 + + "var props = Object.getOwnPropertyNames(values);\n"
1.22 + + "for (var i = 0; i < props.length; i++) {\n"
1.23 + + " var p = props[i];\n"
1.24 + + " a[p] = new f(values, p);\n"
1.25 + + "}\n"
1.26 + + "a['$instOf_' + n] = true;\n"
1.27 + "return a;"
1.28 )
1.29 private static <T extends Annotation> T create(AnnotationImpl a, String n, Object values) {