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