1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Jun 08 06:58:24 2016 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed Jun 08 07:02:46 2016 +0200
1.3 @@ -1885,6 +1885,14 @@
1.4 .append(']');
1.5 return i;
1.6 }
1.7 + if ("$set__VLjava_lang_String_2Ljava_lang_Object_2".equals(mn)) {
1.8 + append(vars[0].toString())
1.9 + .append('[')
1.10 + .append(vars[1])
1.11 + .append("] = ")
1.12 + .append(vars[2]);
1.13 + return i;
1.14 + }
1.15 }
1.16
1.17 append(accessVirtualMethod(vars[0].toString(), mn, mi, numArguments));
2.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/LibUse.java Wed Jun 08 06:58:24 2016 +0200
2.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/LibUse.java Wed Jun 08 07:02:46 2016 +0200
2.3 @@ -26,7 +26,7 @@
2.4 return n.intValue();
2.5 }
2.6
2.7 - public static String hiProperty() {
2.8 + public static String hiProperty(String set) {
2.9 final Object obj = eval("var x = {}; x.x = 'Hi'; x");
2.10 if (obj == null) {
2.11 throw new IllegalStateException("Some Value returned " + obj);
2.12 @@ -35,6 +35,9 @@
2.13 throw new IllegalStateException("The result is Objs: " + obj.getClass());
2.14 }
2.15 Objs js = (Objs) obj;
2.16 + if (set != null) {
2.17 + js.$set("x", set);
2.18 + }
2.19 return (String) js.$get("x");
2.20 }
2.21 }
3.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/LibUseTest.java Wed Jun 08 06:58:24 2016 +0200
3.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/LibUseTest.java Wed Jun 08 07:02:46 2016 +0200
3.3 @@ -40,6 +40,19 @@
3.4
3.5 @Test
3.6 public void readAHiProperty() throws Exception {
3.7 - code.assertExec("Object has property x", LibUse.class, "hiProperty__Ljava_lang_String_2", "Hi");
3.8 + code.assertExec(
3.9 + "Object has property x", LibUse.class,
3.10 + "hiProperty__Ljava_lang_String_2Ljava_lang_String_2",
3.11 + "Hi", (Object)null
3.12 + );
3.13 + }
3.14 +
3.15 + @Test
3.16 + public void writeAHiProperty() throws Exception {
3.17 + code.assertExec(
3.18 + "Object has property x", LibUse.class,
3.19 + "hiProperty__Ljava_lang_String_2Ljava_lang_String_2",
3.20 + "Ahoj", "Ahoj"
3.21 + );
3.22 }
3.23 }