1.1 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Fri Dec 06 16:31:36 2013 +0100
1.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java Mon Dec 09 21:03:25 2013 +0100
1.3 @@ -51,4 +51,13 @@
1.4 "return c.@net.java.html.js.tests.Sum::sum(II)(40, 2);"
1.5 )
1.6 public static native int sumIndirect(Sum c);
1.7 +
1.8 + @JavaScriptBody(args = { "arr", "index" }, body = "return arr[index];")
1.9 + public static native Object select(Object[] arr, int index);
1.10 +
1.11 + @JavaScriptBody(args = { "arr" }, body = "return arr.length;")
1.12 + public static native int length(Object[] arr);
1.13 +
1.14 + @JavaScriptBody(args = { "arr", "i", "value" }, body = "arr[i] = value;")
1.15 + public static native void modify(String[] arr, int i, String value);
1.16 }
2.1 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Fri Dec 06 16:31:36 2013 +0100
2.2 +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java Mon Dec 09 21:03:25 2013 +0100
2.3 @@ -67,6 +67,32 @@
2.4 int res = Bodies.sumIndirect(new Sum());
2.5 assert res == 42 : "Expecting 42";
2.6 }
2.7 +
2.8 + @KOTest public void selectFromJavaArray() {
2.9 + String[] arr = { "Ahoj", "World" };
2.10 + Object res = Bodies.select(arr, 1);
2.11 + assert "World".equals(res) : "Expecting World, but was: " + res;
2.12 + }
2.13 +
2.14 + @KOTest public void lengthOfJavaArray() {
2.15 + String[] arr = { "Ahoj", "World" };
2.16 + int res = Bodies.length(arr);
2.17 + assert res == 2 : "Expecting 2, but was: " + res;
2.18 + }
2.19 +
2.20 + @KOTest public void javaArrayInOut() {
2.21 + String[] arr = { "Ahoj", "World" };
2.22 + Object res = Bodies.id(arr);
2.23 + assert res == arr : "Expecting same array, but was: " + res;
2.24 + }
2.25 +
2.26 +// Modifying an array is a complex operation in the bridge:
2.27 +//
2.28 +// @KOTest public void modifyJavaArray() {
2.29 +// String[] arr = { "Ahoj", "World" };
2.30 +// Bodies.modify(arr, 0, "Hello");
2.31 +// assert "Hello".equals(arr[0]) : "Expecting World, but was: " + arr[0];
2.32 +// }
2.33
2.34 private static class R implements Runnable {
2.35 int cnt;