diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-01-06 13:12:34 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-01-06 13:12:34 -0800 |
commit | acfb322187321f69b8f3cf71009c423ab594e200 (patch) | |
tree | 49db2a8155c3f36fad323084c40c46eb174cee66 | |
parent | 200a93c606b72b9694b69e2ec0bafe43153ddcf5 (diff) | |
download | binaryen-acfb322187321f69b8f3cf71009c423ab594e200.tar.gz binaryen-acfb322187321f69b8f3cf71009c423ab594e200.tar.bz2 binaryen-acfb322187321f69b8f3cf71009c423ab594e200.zip |
print infinity properly #71
-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) ) ) ) |