From 4bb145d116af58ea57d2d5e152c39ab3ac3f3aa2 Mon Sep 17 00:00:00 2001 From: Volker Berlin <volker.berlin@googlemail.com> Date: Tue, 12 Mar 2019 22:36:43 +0100 Subject: [PATCH] Error message for native methods --- .../jwebassembly/module/ModuleGenerator.java | 2 +- .../jwebassembly/runtime/RuntimeErrors.java | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java index a86dbde..25b381b 100644 --- a/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java +++ b/src/de/inetsoftware/jwebassembly/module/ModuleGenerator.java @@ -352,7 +352,7 @@ public class ModuleGenerator { codeBuilder = javaCodeBuilder; localVariableTable = code.getLocalVariableTable(); } else { - return; + throw new WasmException( "Abstract or native method can not be used: " + name.fullName, -1 ); } writeExport( name, method ); writeMethodImpl( name, method.isStatic(), localVariableTable, codeBuilder ); diff --git a/test/de/inetsoftware/jwebassembly/runtime/RuntimeErrors.java b/test/de/inetsoftware/jwebassembly/runtime/RuntimeErrors.java index 0df5b6f..c4e769b 100644 --- a/test/de/inetsoftware/jwebassembly/runtime/RuntimeErrors.java +++ b/test/de/inetsoftware/jwebassembly/runtime/RuntimeErrors.java @@ -110,4 +110,14 @@ public class RuntimeErrors { return 1; } } + + @Test + public void nativeMethod() throws IOException { + compileErrorTest( "Abstract or native method can not be used:", NativeMethod.class ); + } + + static class NativeMethod { + @Export + native static float function(); + } }