From 1882d016acf63f80fec4b0a49c0512b724be049f Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sat, 21 Mar 2020 11:25:32 +0100 Subject: [PATCH] test for abstract method calls --- .../jwebassembly/runtime/StructsNonGC.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/test/de/inetsoftware/jwebassembly/runtime/StructsNonGC.java b/test/de/inetsoftware/jwebassembly/runtime/StructsNonGC.java index 3910c6c..d8bd34f 100644 --- a/test/de/inetsoftware/jwebassembly/runtime/StructsNonGC.java +++ b/test/de/inetsoftware/jwebassembly/runtime/StructsNonGC.java @@ -52,6 +52,7 @@ public class StructsNonGC extends AbstractBaseTest { addParam( list, script, "useGlobalObject" ); addParam( list, script, "multipleAssign" ); addParam( list, script, "getDefaultValue" ); + addParam( list, script, "callAbstractMethod" ); addParam( list, script, "instanceof1" ); addParam( list, script, "instanceof2" ); addParam( list, script, "instanceof3" ); @@ -151,6 +152,12 @@ public class StructsNonGC extends AbstractBaseTest { return val.getDefault(); } + @Export + static int callAbstractMethod() { + Ab val = new Abc2(); + return val.abstractBar(); + } + @Export static boolean instanceof1() { Object obj = new Object(); @@ -210,7 +217,11 @@ public class StructsNonGC extends AbstractBaseTest { } } - static class Abc implements TestDefault { + static abstract class Ab { + abstract int abstractBar(); + } + + static class Abc extends Ab implements TestDefault { int a; long b; @@ -222,6 +233,11 @@ public class StructsNonGC extends AbstractBaseTest { void bar() { a = 2; } + + @Override + int abstractBar() { + return 2; + } } static class Abc2 extends Abc { @@ -230,5 +246,10 @@ public class StructsNonGC extends AbstractBaseTest { void bar() { a = 3; } + + @Override + int abstractBar() { + return 3; + } } }