From abeec6cca4153e6f33afc0fb05244b2b8e88722c Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Sun, 14 Jul 2019 17:24:39 +0200 Subject: [PATCH] NaN is written in lowercase in Wasm text format. --- .../jwebassembly/text/TextModuleWriter.java | 4 ++-- .../jwebassembly/runtime/MathOperations.java | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java index a76155b..9641b9e 100644 --- a/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java +++ b/src/de/inetsoftware/jwebassembly/text/TextModuleWriter.java @@ -386,10 +386,10 @@ public class TextModuleWriter extends ModuleWriter { methodOutput.append( valueType ).append( ".const " ); switch( valueType ) { case f32: - methodOutput.append( Float.toHexString( value.floatValue() ) ).append( " ;;" ).append( value ); + methodOutput.append( Float.toHexString( value.floatValue() ).toLowerCase() ).append( " ;;" ).append( value ); break; case f64: - methodOutput.append( Double.toHexString( value.doubleValue() ) ).append( " ;;" ).append( value ); + methodOutput.append( Double.toHexString( value.doubleValue() ).toLowerCase() ).append( " ;;" ).append( value ); break; default: methodOutput.append( value ); diff --git a/test/de/inetsoftware/jwebassembly/runtime/MathOperations.java b/test/de/inetsoftware/jwebassembly/runtime/MathOperations.java index 27d461b..c852ae5 100644 --- a/test/de/inetsoftware/jwebassembly/runtime/MathOperations.java +++ b/test/de/inetsoftware/jwebassembly/runtime/MathOperations.java @@ -64,6 +64,8 @@ public class MathOperations extends AbstractBaseTest { addParam( list, script, "shortInc", (short)-32768 ); addParam( list, script, "charOp", (char)0xFFFF ); addParam( list, script, "castNumberOverflow" ); + addParam( list, script, "doubleNaN" ); + addParam( list, script, "floatNaN" ); } rule.setTestParameters( list ); return list; @@ -291,5 +293,15 @@ public class MathOperations extends AbstractBaseTest { return result; } + + @Export + static double doubleNaN() { + return Double.NaN; + } + + @Export + static float floatNaN() { + return Float.NaN; + } } }