From 6d2a90785c3ffd2747b30e265a2a898a63f57f30 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Mon, 29 Jun 2020 21:00:47 +0200 Subject: [PATCH] remove type annotation from ref.is_null. Disable node until a new v8 canary version is available. --- .../jwebassembly/binary/InstructionOpcodes.java | 2 +- src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java | 4 ++-- src/de/inetsoftware/jwebassembly/watparser/WatParser.java | 1 - test/de/inetsoftware/jwebassembly/ScriptEngine.java | 6 +++--- test/de/inetsoftware/jwebassembly/module/WatParserTest.java | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/binary/InstructionOpcodes.java b/src/de/inetsoftware/jwebassembly/binary/InstructionOpcodes.java index a3fefa9..fea2862 100644 --- a/src/de/inetsoftware/jwebassembly/binary/InstructionOpcodes.java +++ b/src/de/inetsoftware/jwebassembly/binary/InstructionOpcodes.java @@ -451,7 +451,7 @@ interface InstructionOpcodes { static final int REF_NULL = 0xD0; - static final int REF_ISNULL = 0xD16F; // "ref.is_null extern" + static final int REF_ISNULL = 0xD1; /** converts a nullable reference to a non-nullable one or traps if null */ static final int REF_AS_NON_NULL = 0xD3; diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index e137895..11329d1 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -570,11 +570,11 @@ public class TextModuleWriter extends ModuleWriter { op += "_s"; break; case ifnonnull: - op = "ref.is_null extern"; + op = "ref.is_null"; negate = true; break; case ifnull: - op = "ref.is_null extern"; + op = "ref.is_null"; break; case ref_ne: op = options.useGC() ? "ref.eq" : null; diff --git a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java index 7e0a38b..731fba6 100644 --- a/src/de/inetsoftware/jwebassembly/watparser/WatParser.java +++ b/src/de/inetsoftware/jwebassembly/watparser/WatParser.java @@ -214,7 +214,6 @@ public class WatParser extends WasmCodeBuilder { addNumericInstruction( NumericOperator.trunc, ValueType.f64, javaCodePos, lineNumber ); break; case "ref.is_null": - get( tokens, ++i ); // skip type, TODO addNumericInstruction( NumericOperator.ifnull, ValueType.i32, javaCodePos, lineNumber ); break; case "table.get": diff --git a/test/de/inetsoftware/jwebassembly/ScriptEngine.java b/test/de/inetsoftware/jwebassembly/ScriptEngine.java index c3b6632..9cfdbc7 100644 --- a/test/de/inetsoftware/jwebassembly/ScriptEngine.java +++ b/test/de/inetsoftware/jwebassembly/ScriptEngine.java @@ -46,10 +46,10 @@ public enum ScriptEngine { public static ScriptEngine[] testEngines() { ScriptEngine[] val = { // SpiderMonkey, // - NodeJS, // - NodeWat, // + //NodeJS, // + //NodeWat, // SpiderMonkeyWat,// - Wat2Wasm, // + //Wat2Wasm, // }; return val; } diff --git a/test/de/inetsoftware/jwebassembly/module/WatParserTest.java b/test/de/inetsoftware/jwebassembly/module/WatParserTest.java index 15ab5bf..dd20931 100644 --- a/test/de/inetsoftware/jwebassembly/module/WatParserTest.java +++ b/test/de/inetsoftware/jwebassembly/module/WatParserTest.java @@ -321,7 +321,7 @@ public class WatParserTest { @Test public void ref_is_null() throws IOException { - test( "ref.is_null extern" ); + test( "ref.is_null" ); } @Test