diff options
-rw-r--r-- | src/wasm.h | 4 | ||||
-rw-r--r-- | test/dot_s/immediates.wast | 8 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/wasm.h b/src/wasm.h index 399e58cfe..e3724c612 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -213,6 +213,10 @@ struct Literal { o << "nan:" << std::hex << u.ll << std::dec; return; } + if (!std::isfinite(d)) { + o << (d < 0 ? "-infinity" : "infinity"); + return; + } const char *text = cashew::JSPrinter::numToString(d); // spec interpreter hates floats starting with '.' if (text[0] == '.') { diff --git a/test/dot_s/immediates.wast b/test/dot_s/immediates.wast index 257421fd9..74f819e3a 100644 --- a/test/dot_s/immediates.wast +++ b/test/dot_s/immediates.wast @@ -154,7 +154,7 @@ (block $fake_return_waka123 (block (br $fake_return_waka123 - (f32.const inf) + (f32.const infinity) ) ) ) @@ -163,7 +163,7 @@ (block $fake_return_waka123 (block (br $fake_return_waka123 - (f32.const -inf) + (f32.const -infinity) ) ) ) @@ -226,7 +226,7 @@ (block $fake_return_waka123 (block (br $fake_return_waka123 - (f64.const inf) + (f64.const infinity) ) ) ) @@ -235,7 +235,7 @@ (block $fake_return_waka123 (block (br $fake_return_waka123 - (f64.const -inf) + (f64.const -infinity) ) ) ) |