Send the Enum values to the JavaScript WebView directly to preserve their toString behavior
Project: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/commit/411a122b Tree: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/tree/411a122b Diff: http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/diff/411a122b Branch: refs/heads/master Commit: 411a122b20f6c3aed575ea8bde7627385166d48e Parents: 76a37ad Author: Jaroslav Tulach <[email protected]> Authored: Mon Jan 16 18:49:03 2017 +0100 Committer: Jaroslav Tulach <[email protected]> Committed: Fri Sep 8 17:13:55 2017 +0200 ---------------------------------------------------------------------- .../java/org/netbeans/html/boot/fx/AbstractFXPresenter.java | 3 +++ json-tck/src/main/java/net/java/html/js/tests/Bodies.java | 3 +++ .../java/net/java/html/js/tests/JavaScriptBodyTest.java | 9 +++++++++ 3 files changed, 15 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/411a122b/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java ---------------------------------------------------------------------- diff --git a/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java b/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java index 84e5398..5454047 100644 --- a/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java +++ b/boot-fx/src/main/java/org/netbeans/html/boot/fx/AbstractFXPresenter.java @@ -351,6 +351,9 @@ Fn.KeepAlive, Fn.ToJavaScript, Fn.FromJavaScript, Executor, Cloneable { if (value instanceof Character) { return (int) (char) (Character) value; } + if (value instanceof Enum) { + return value; + } int len = isArray(value); if (len >= 0) { Object[] copy = new Object[len]; http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/411a122b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java ---------------------------------------------------------------------- diff --git a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java index 122f9f7..641b31f 100644 --- a/json-tck/src/main/java/net/java/html/js/tests/Bodies.java +++ b/json-tck/src/main/java/net/java/html/js/tests/Bodies.java @@ -117,6 +117,9 @@ final class Bodies { @JavaScriptBody(args = { "b" }, body = "return typeof b;") public static native String typeof(boolean b); + @JavaScriptBody(args = { "o" }, body = "return o.toString();") + public static native String toString(Object o); + @JavaScriptBody(args = { "o" }, body = "return Array.isArray(o);") public static native boolean isArray(Object o); http://git-wip-us.apache.org/repos/asf/incubator-netbeans-html4j/blob/411a122b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java ---------------------------------------------------------------------- diff --git a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java index 1663fa8..6a63640 100644 --- a/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java +++ b/json-tck/src/main/java/net/java/html/js/tests/JavaScriptBodyTest.java @@ -154,6 +154,15 @@ public class JavaScriptBodyTest { assertEquals("number", doubleType, "Expecting number type: " + doubleType); } + enum Two { + ONE, TWO; + } + + @KOTest public void toStringOfAnEnum() { + String enumStr = Bodies.toString(Two.ONE); + assertEquals(Two.ONE.toString(), enumStr, "Enum toString() used: " + enumStr); + } + @KOTest public void computeInARunnable() { final int[] sum = new int[2]; class First implements Runnable {
